Выборка всех значений из трех таблиц - 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), языке, используемом для работы с реляционными базами данных.