在mysql中将其他表中的多行合并成一列

kuuvgm7e  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(357)

这个问题在这里已经有答案了

我可以将多个mysql行连接到一个字段中吗(11个答案)
两年前关门了。
我有两张table

table1

|---------------------|------------------|------------------|
|      student_id     |   studentname    |     parentid     |
|---------------------|------------------|------------------|
|          1          |       Kobe       |        1         |
|---------------------|------------------|------------------|
|---------------------|------------------|------------------|
|          2          |      Lebron      |        1         |
|---------------------|------------------|------------------|

table2
|---------------------|------------------|
|       parentid      |    parentname    |   
|---------------------|------------------|
|          1          |      Jordan      |
|---------------------|------------------|

我想选择这样的输出

result
|---------------------|------------------|------------------|---------------- 
--
|       parentid      |    parentname    |    childrenid    |  childrenname
|---------------------|------------------|------------------|------------------
|          1          |      Jordan      |     1,2          |  Kobe,Jordan
|---------------------|------------------|------------------|------------------

这可能发生吗?提前感谢我已经使用了这个查询,但是行是重复的

select * from table2 left join table1 ON table1.parentid = table2.parentid
plicqrtu

plicqrtu1#

使用 GROUP_CONCAT mysql中的函数

select parentname,
GROUP_CONCAT(student_id SEPARATOR ',') AS childrenid,
GROUP_CONCAT(studentname SEPARATOR ',') childrenname  
from table2 p left join table1 s on
p.parentid=s.parentid
group by parentname

parentname  childrenid  childrenname
Jordan       1,2        Kobe,Lebron

http://www.sqlfiddle.com/#!2012年9月4日

wbgh16ku

wbgh16ku2#

不,这是不可能的,你必须使用左边的连接,这将导致两行一个为科比,另一个为勒布朗。

相关问题