Mysql 同一行中有多个值
我的问题是下一个: 我有一个显示预订信息的sql查询。信息是预订者的姓名、电话等以及他购买的额外物品。 我需要显示他在同一行购买的所有额外内容,但我找不到方法(我不太擅长mysql) 所以,我有两张表:一张是预订的一般信息,另一张是额外信息,因为一个预订可以有多个额外信息,一个额外信息可以在多个预订上 桌位预订: 身份证、姓名、电话 表订票额外费用: 身份证,身份证额外,身份证预订 我想Mysql 同一行中有多个值,mysql,Mysql,我的问题是下一个: 我有一个显示预订信息的sql查询。信息是预订者的姓名、电话等以及他购买的额外物品。 我需要显示他在同一行购买的所有额外内容,但我找不到方法(我不太擅长mysql) 所以,我有两张表:一张是预订的一般信息,另一张是额外信息,因为一个预订可以有多个额外信息,一个额外信息可以在多个预订上 桌位预订: 身份证、姓名、电话 表订票额外费用: 身份证,身份证额外,身份证预订 我想 select * from booking left join booking_extra on id_bo
select * from booking
left join booking_extra on id_booking = booking.id
结果应该是
id:1
name: test
telephone: 123456
extras: 1,2,3
有什么想法吗 类似这样:
SELECT id, name, telephone, GROUP_CONCAT(extras, separator ',')
FROM booking
LEFT JOIN booking_extra ON id_booking = booking.id
GROUP BY id, name, telephone
正如@panther在评论中所暗示的,使用
group\u concat
。因此,您的查询将如下所示:
SELECT A.ID, A.NAME, A.TELEPHONE,
GROUP_CONCAT(DISTINCT B.ID_EXTRA ORDER BY B.ID_EXTRA ASC SEPARATOR ',') EXTRAS
FROM BOOKING A LEFT JOIN BOOKING_EXTRA B ON A.ID=B.ID_BOOKING
GROUP BY A.ID, B.ID_BOOKING;
group\u concat
?差不多了!但它只显示了一行所有的额外内容,我需要显示所有的预订,而不仅仅是一个…谷歌搜索时怎么没有找到group_concat?group concat在哪里?嗨@krishnaaryal,非常感谢您的评论。我刚刚更新了我的答案。那你为什么选择另一个答案呢?:'(“distinc”状态,抱歉!