Соединение 3 запросов вместе - PullRequest
0 голосов
/ 20 декабря 2010

Я работал над этим весь день, и я думаю, что мой мозг сейчас не работает правильно.

У меня есть 3 таблицы, все "связанные" вместе:
Стол доски имеет:
- board_id
- Board_name

Таблица тем имеет:
- topic_id
- topic_board_link (ссылки на board_id)

Почтовый стол имеет:
- post_time
- post_parent (ссылки на тему)

По сути, я хотел бы, чтобы он отображал доску, последнюю тему в выбранной доске и последнее сообщение в этой теме. Пока что с моим наполовину функционирующим мозгом у меня есть (не работает, так как max_topic не определен в конце и возвращает только 1 строку):

SELECT 
    b.board_name,
    MAX(t.topic_id) as max_topic,
    MAX(p.post_id) as max_post
FROM board_list b
    INNER JOIN (topic_list t, post_list p)
    ON t.topic_board_link=b.board_id AND p.post_id=max_topic

Есть ли способ, которым я могу сделать это без использования множества подзапросов?

1 Ответ

0 голосов
/ 20 декабря 2010

Добавьте last_topic_id к таблице boards и last_post_id к таблице topics.

В этом случае у вас будет простой и очень быстрый запрос, который вернет все, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...