mysql - 具有多个结果的 mySQL 子选择应显示在 1 个字段中
问题描述
我想在子选择的 1 个字段中显示多个结果。
例如:
table 1:
tbl1_ID, fistname, familyname
table 2:
tbl2_ID, carbrand
table 3 is the n:n relationship for table 1 and 2
tbl1, tbl2
表 1 中的人应该能够拥有几辆汽车(例如福特和宝马)。表2的汽车品牌当然适用于几个人。
我想在 1 个数据字段中列出每个人的汽车
例子:
Mueller | Hans | Ford,BMW
Jaeger | Erwin | BMW,Mercedes,Jaguar
Fritsche | Sascha | Mercedes
这该怎么做?我不能使用子选择,因为它只允许 1 个结果。此外,它不适用于 LEFT JOIN,因为我只想向每个人显示一次。
谢谢!先生
解决方案
您可以使用 group_concat 并且您应该使用基于表 3 和 group by 的两个相关表之间的内部联接
select a.familyname, a.fistname, group_concat(b.carbrand)
from table_3 c
inner join table1 a on c.table1_id = a.table1_id
inner join table2 b on c.table2_id = b.table2_id
group by a.familyname, a.fistname