konnn
@konnn
Front-end developer

Выборка из трех таблиц одним запросом?

Привет всем!
Есть 3 таблицы, представил образно.

8e417eb73d804f899724dae22f9bfb4f.png

Нужно вывести типа, например:
  1. Apple is green, sweet, medium
  2. Orange is yellow, sweet

и т.д.

Пытаюсь сделать выборку в одном запросе из трех таблиц.
Вытащить список type_id получилось, через GROUP_CONCAT, но никак не могу вытащить список type!
Подскажите кто знает как?

SELECT t1.*, GROUP_CONCAT(t2.type_id ORDER BY t2.id ASC SEPARATOR ',') AS type_id 
FROM fruits t1 
LEFT JOIN types t2 ON t2. type_id = t1. fruit_id 
GROUP BY t1.id


Спасибо!
  • Вопрос задан
  • 359 просмотров
Решения вопроса 1
alexprik07
@alexprik07
Программист, верстальщик.
Подзапрос? ) Или вопрос оптимальности?

Я бы вынес Group_Concat на уровень выше, а этот запрос соединил ещё одним соединением с таблицей connections, т.е. третим псевданимом заменил бы id на названия.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
BuriK666
@BuriK666
Компьютерный псих
SELECT *, (SELECT GROUP_CONCAT(type SEPARATOR ',') FROM connections AS c LEFT JOIN types AS t ON c.type_id = t.id  WHERE  c.fruit_id = f.id) FROM fruits AS f;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы