php - 如何从一行中选择多个值并将其连接为单个列值

标签 php mysql sql

您好,这是我的数据库结构和数据,我想获得如下图所示的输出。

我在表中有一个部分,其中食物类型允许多个值,所以我制作了 2 个表,1 个表用于值(dd_foods),另外 1 个用于部分 ID(restaurant_food )。现在我想从 restaurant_food.foodtype 中选择那些多行 ID 值,但作为 dd_foods 中的名称。我该怎么做?

database structure

我不确定如何在这里解释它,所以如果它令人困惑,我很抱歉。

最佳答案

您可以使用 GROUP_CONCAT功能。

SELECT r.id, r.name, GROUP_CONCAT(dd.foodtypes)
FROM restaurants r 
INNER JOIN restaurants_food rf on rf.restaurants_id = r.id 
INNER JOIN dd_foods dd on dd.id = rf.food_id
GROUP BY r.id, r.name

关于php - 如何从一行中选择多个值并将其连接为单个列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33189520/

相关文章:

sql - 如何使用sql查找字符串中特定字符的出现次数?

php - 从 URL 解析域

Javascript 发布数据

PHP高效查询mysql数据库

mysql - 无法连接到本地主机数据库

sql - 从prestosql中的日期列获取星期几?

php - 从 file_get_contents() 值创建数组

php - 尝试在 mysql 中将 php 日期 ("YmdHis")记录为整数,但记录了一些意外的内容

phpMyAdmin float 禁用轮数

python - 如何查询学生所在类(class)的文件?