首页 > 解决方案 > 具有多个结果的 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,因为我只想向每个人显示一次。

谢谢!先生

标签: mysqlsqlsubquery

解决方案


您可以使用 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

推荐阅读