Я пытаюсь выбрать два (разделенных запятой) элементов, один для «кухни», а другой - для «объектов» из 4 таблиц в mysql.Как сделать этот выбор в одном запросе?
Это, как я попробовал:
$query = "SELECT GROUP_CONCAT(DISTINCT c.name SEPARATOR ', ') AS cuisines,
GROUP_CONCAT(DISTINCT f.name SEPARATOR ', ') AS facilities
FROM cuisines c, facilities f
INNER JOIN restaurant_cuisines rc ON rc.cuisine_id = c.id
INNER JOIN restaurant_facilities rf ON rf.facility_id = f.id
WHERE rc.restaurant_id = 16 AND rf.restaurant_id = 16";
Но этот запрос не работает. Но если я использую два отдельных запроса для этого двух вариантов, я могу заставить его работать. Но я ищу решение в одном запросе.
Это выход, если я использую два отдельных запроса:
mysql> SELECT GROUP_CONCAT(DISTINCT c.name SEPARATOR ', ') AS cuisines
-> FROM cuisines c
-> INNER JOIN restaurant_cuisines rc ON rc.cuisine_id = c.id
-> WHERE rc.restaurant_id = 15;
+-----------------------------------------+
| cuisines |
+-----------------------------------------+
| American, Asian, Bars & Pubs, Beverages |
+-----------------------------------------+
1 row in set (0.14 sec)
Может кто-нибудь сказать мне, возможно ли это в MySQL?
спасибо.
необходимо обновить с вы хотите (и ввести для ресторана 16 в обе таблицы) – amdixon
@amdixon, обновил мой вопрос. Да 'restaurant_id' одинаково для обеих таблиц. – user3733831
Ваш запрос состоит из микширования, обозначения и внутренней записи соединения. поэтому вы получаете ошибку. – xQbert