Mysql SQL组表值

Mysql SQL组表值,mysql,Mysql,所以我有一个SQL查询,它由一个select、多个子查询、多个连接和一些where条件组成。它看起来像: SELECT concat(t1.name, ' ', t1.surname) AS users, (SELECT t3.value AS col1 WHERE t6.id=343), (SELECT t3.value AS col2 WHERE t6.id=344), (SELECT t3.value AS col3 WHERE t6.id=345), (SELECT t3.value A

所以我有一个SQL查询,它由一个select、多个子查询、多个连接和一些where条件组成。它看起来像:

SELECT concat(t1.name, ' ', t1.surname) AS users,
(SELECT t3.value AS col1 WHERE t6.id=343),
(SELECT t3.value AS col2 WHERE t6.id=344),
(SELECT t3.value AS col3 WHERE t6.id=345),
(SELECT t3.value AS col4 WHERE t6.id=346),
(SELECT t3.value AS col5 WHERE t6.id=347),
(SELECT t3.value AS col6 WHERE t6.id=348),
(SELECT t3.value AS col7 WHERE t6.id=349),
(SELECT t3.value AS col8 WHERE t6.id=350),
(SELECT t3.value AS col9 WHERE t6.id=351)
FROM table1 t1
JOIN table2 t2
ON t2.id_table1_user=t1.id
JOIN table3 t3
ON t2.id=t3.id_eva
JOIN table4 t4
ON t3.id_pro_q=t4.id
JOIN table5 t5
ON t4.id_pro=t5.id
JOIN table6 t6
ON t4.id_t6=t6.id
JOIN table7 t7
ON t7.id_table1_user=t1.id
WHERE t5.id=151
它给了我一张桌子:

现在。。。我的问题是-如何对行进行分组,以便只有2行且没有空行?有办法吗


需要注意的是,我是一名SQL初学者,因此欢迎对改进命令或任何内容提出任何建议。

您需要一个GROUPBY子句:

SELECT concat(t1.name, ' ', t1.surname) AS users,
       max (CASE WHEN t6.id = 343 then t3.value end) as col1,
       max (CASE WHEN t6.id = 344 then t3.value end) as col2,
       max (CASE WHEN t6.id = 345 then t3.value end) as col3,
       max (CASE WHEN t6.id = 346 then t3.value end) as col4,
       max (CASE WHEN t6.id = 347 then t3.value end) as col5,
       max (CASE WHEN t6.id = 348 then t3.value end) as col6,
       max (CASE WHEN t6.id = 349 then t3.value end) as col7,
       max (CASE WHEN t6.id = 350 then t3.value end) as col8,
       max (CASE WHEN t6.id = 351 then t3.value end) as col9
  FROM table1 t1
  JOIN table2 t2
    ON t2.id_table1_user = t1.id
  JOIN table3 t3
    ON t2.id = t3.id_eva
  JOIN table4 t4
    ON t3.id_pro_q = t4.id
  JOIN table5 t5
    ON t4.id_pro = t5.id
  JOIN table6 t6
    ON t4.id_t6 = t6.id
  JOIN table7 t7
    ON t7.id_table1_user = t1.id
 WHERE t5.id = 151
 GROUP BY concat(t1.name, ' ', t1.surname)

谢谢你的回复。。。不幸的是,我尝试了这个方法,并给了我一个错误:错误:子查询使用了来自外部的未分组列“t3.\u value”query@Pabos那会是什么错误呢?不管怎么说,现在试试,编辑答案,刚刚试过用concat。。。相同的错误(见我的上一篇帖子)@Pabos我更改了所有子问题,所以不可能得到相同的错误!重新复制代码(使用用例而不是子查询),并告诉我如果您遇到错误,是什么错误它可以工作。。。先生,你真棒!非常感谢你。。。你能不能提供一点见解,解释一下为什么我的代码不起作用?再次感谢你。。。