miker059
@miker059
Коротко не получится

Как построить запрос в MySQL?

Коллеги, помогите, пожалуйста разобраться))
Суть такая, есть база в которой, к примеру, 4 таблицы:
1. Посты c полями: id, text,
2. Категории c полями: id, name
3. Зависмость постов от категории с полями: id, post_id, cat_id
4. Ну и иерархия категорий: id, cat_id, parent_id

Проблема вот в чем: есть например корневая категория Libs, в ней есть категория Posts, в ней есть пост Post1
соответственно таблицы выглядят примерно так:
1. id text
1 Post1

2. id name
1 Libs
2 Posts

3. id post_id cat_id
1 1 2

4. id cat_id parent_id
1 2 1

Задача стоит сделать запрос который вернет следующую информацию:

id поста, text поста, имя родительской категории и имя корневой категории

не могу ни как выудить последнее, получается только получить id корневой категории а имя нет, запрос примерно такой:

SELECT  table1.ID, table1.text, table2.name, table4.parent_id
                FROM table1
                INNER JOIN table3 ON table1.ID = table3.post_id

                INNER JOIN table4 ON table3.cat_id = table4.cat_id

                INNER JOIN table2 ON table4.cat_id = table2.id

                GROUP BY table1.ID


Как здесь выудить имя корневой в этом же запросе?
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 1
idShura
@idShura
Как-то мутно ты все описал. Откуда у тебя в запросе появилось поле table3.name? Его не было в описании выше. Можешь написать скрипт на создание таблиц с тестовыми данными?
Ответ написан
Ваш ответ на вопрос

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

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