我有两个桌子
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
答案 0 :(得分:0)
不可能,您必须使用左连接,这将导致两行,其中一行用于科比,另一行用于Lebron。
答案 1 :(得分:0)
在mysql中使用GROUP_CONCAT
功能
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