Выборка всех значений из трех таблиц - 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 элементов:

  1. SELECT - оператор SELECT используется для выбора данных из одной или нескольких таблиц.
  2. t1.* - символ * означает, что выбираются все поля из таблицы t1.
  3. GROUP BY - оператор GROUP BY используется для группировки строк по определенному полю.
  4. t1.id - указывается поле, по которому будут сгруппированы данные. Код может быть написан на SQL (Structured Query Language), языке, используемом для работы с реляционными базами данных.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы