Выборка всех значений из трех таблиц - MySQL
Формулировка задачи:
Доброго времени суток,
проблема такая не могу понять как сделать выбор из трех таблиц.
Имеется 3 таблицы:
tm_post - Таблица всех постов
tm_relationships - Таблица зависимостей
tm_attributes - Таблица всех атрибутов (теги, категории и т.д.)
Имеется запрос:
Смысл в том, что он получает данные из трех таблиц. Выводит список постов и категорий. Однако есть проблема. Он не выводит записи у которых НЕТ категорий.
Как переделать такой запрос на вывод всего, но чтобы смысл остался таким же?
SELECT t1.*, GROUP_CONCAT(t3.rus) AS `catrus`, GROUP_CONCAT(t3.eng) AS `cateng` FROM tm_posts t1 JOIN tm_relationships t2 ON t1.id = t2.id_post AND t2.tips='category' JOIN tm_attributes t3 ON t3.id = t2.id_attr WHERE t1.type = 'post' GROUP BY t1.id ORDER BY DATE DESC, id DESC
Решение задачи: «Выборка всех значений из трех таблиц»
textual
Листинг программы
SELECT t1.* .... GROUP BY t1.id
Объяснение кода листинга программы
В представленном коде выполняется запрос SELECT к базе данных, который включает в себя выборку данных из трёх таблиц (t1, t2, t3) и группировку результатов по полю id из таблицы t1. Код сформулирован в виде списка с нумерацией до 20 элементов:
SELECT
- оператор SELECT используется для выбора данных из одной или нескольких таблиц.t1.*
- символ*
означает, что выбираются все поля из таблицы t1.GROUP BY
- оператор GROUP BY используется для группировки строк по определенному полю.t1.id
- указывается поле, по которому будут сгруппированы данные. Код может быть написан на SQL (Structured Query Language), языке, используемом для работы с реляционными базами данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д