Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 同一行中有多个值_Mysql - Fatal编程技术网

Mysql 同一行中有多个值

Mysql 同一行中有多个值,mysql,Mysql,我的问题是下一个: 我有一个显示预订信息的sql查询。信息是预订者的姓名、电话等以及他购买的额外物品。 我需要显示他在同一行购买的所有额外内容,但我找不到方法(我不太擅长mysql) 所以,我有两张表:一张是预订的一般信息,另一张是额外信息,因为一个预订可以有多个额外信息,一个额外信息可以在多个预订上 桌位预订: 身份证、姓名、电话 表订票额外费用: 身份证,身份证额外,身份证预订 我想 select * from booking left join booking_extra on id_bo

我的问题是下一个:

我有一个显示预订信息的sql查询。信息是预订者的姓名、电话等以及他购买的额外物品。 我需要显示他在同一行购买的所有额外内容,但我找不到方法(我不太擅长mysql)

所以,我有两张表:一张是预订的一般信息,另一张是额外信息,因为一个预订可以有多个额外信息,一个额外信息可以在多个预订上

桌位预订: 身份证、姓名、电话

表订票额外费用: 身份证,身份证额外,身份证预订

我想

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”状态,抱歉!