Присоединение к нескольким столбцам от таблицы a до одной на таблице b

Я провел немного времени, исследуя это на здесь и mysql сайт, но я немного смущен на двух вещах: какой вид соединяют с использованием и как (или если) для использования псевдонима.

Запрос:

SELECT forum_threads.id, forum_threads.forum_id, forum_threads.sticky, 
forum_threads.vis_rank, forum_threads.locked, forum_threads.lock_rank,
forum_threads.author_id, forum_threads.thread_title, forum_threads.post_time, 
forum_threads.views, forum_threads.replies, users.username AS author_username 
FROM forum_threads LEFT JOIN users ON forum_threads.author_id = users.id
WHERE forum_threads.forum_id=XXX

Теперь, когда запрос в настоящее время находит все потоки от данного форума и соединяет идентификатор автора потоков с таблицей имени пользователя. Я также имею lastpostid который я также хотел бы включать в тот запрос и присоединиться снова на пользовательской таблице, таким образом, я могу получить имя пользователя для последнего плаката также.

Я пытался добавить:

LEFT JOIN users ON threads.lastpostid = users.username 

но это просто приводит к ошибке псевдонима как users не уникально.

Я также пытался использовать и псевдоним на основном запросе и на втором соединении, но это продолжает давать мне недостающие полевые ошибки.

Кто-то мог дать мне точку в правильном направлении?

1
задан TooManyCooks 25 July 2010 в 22:28
поделиться

1 ответ

Да, каждый раз вам нужен другой псевдоним. Каждый раз, когда вы обращаетесь к таблице в запросе, вы должны использовать соответствующий псевдоним.

SELECT
     forum_threads.id,
     -- etc...,
     forum_threads.replies,
     u1.username AS author_username 
     u2.username AS last_post_username 
FROM forum_threads
LEFT JOIN users u1 ON forum_threads.author_id = u1.id
LEFT JOIN users u2 ON threads.lastpostid = u2.username 
WHERE forum_threads.forum_id=XXX
2
ответ дан 2 September 2019 в 22:46
поделиться
Другие вопросы по тегам:

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