Php 如何从一对多关系表中选择一行结果
我有两张桌子: 餐厅Php 如何从一对多关系表中选择一行结果,php,mysql,Php,Mysql,我有两张桌子: 餐厅 +---------------+----------------+ | restaurant_id | Restaurant name| +---------------+----------------+ | 1 | KFC | | 2 | McD | +----+---------------------------+ 烹饪 +---------------+--------
+---------------+----------------+
| restaurant_id | Restaurant name|
+---------------+----------------+
| 1 | KFC |
| 2 | McD |
+----+---------------------------+
烹饪
+---------------+---------------+----------------+
| cuisine_id | restaurant_id | cuisine |
+---------------+---------------+----------------+
| 1 | 1 | Fastfood |
| 2 | 1 | Fried Chicken |
| 3 | 2 | Fastfood |
| 4 | 2 | Burger |
+---------------+---------------+----------------+
是否有可能获得这样的数据=
+---------------+----------------+------------------------+
| restaurant_id | Restaurant name| Cuisine |
+---------------+----------------+------------------------+
| 1 | KFC |Fastfood, Fried Chicken |
| 2 | McD |Fastfood, Burger |
+----+---------------------------+------------------------+
只需一个查询?
或者我应该通过php select table Restaurant first>foreach loop>按餐厅id选择菜肴>解析到新数组中来执行此操作。您可以使用:
选择r.餐厅id、r.餐厅名称,
由c.Couries订购的集团美食
从餐厅到r
左键作为c ON r.restaurant\u id=c.restaurant\u id加入烹饪
按r.餐厅id、r.餐厅名称分组
注意:仅当您需要一个以逗号分隔的烹饪名称列表时,才需要GROUP_CONCAT中的ORDER BY子句。您可以使用GROUP_CONCAT:
SELECT c.restaurant_id,r.restaurant_name, GROUP_CONCAT(c.cuisine)
FROM Restaurant r
INNER JOIN Cuisine c ON c.restaurant_id = r.restaurant_id
GROUP BY c.restaurant_id
SELECT Restaurant.restaurant_id, Restaurant.Restaurant_name, GROUP_CONCAT(Cuisine.cuisine)
FROM Restaurant
LEFT JOIN Cuisine ON Restaurant.restaurant_id = Cuisine.restaurant_id
GROUP BY Restaurant.restaurant_id, Restaurant.Restaurant_name