Как запустить вложенное левое соединение в mysql

0

У меня три таблицы, нравится, пользователи и статусы. Поэтому я возвращаюсь из таблиц с симпатичными таблицами и присоединяюсь к likes table with user table чтобы узнать, кому она понравилась, и присоединиться к likes table with statuses table чтобы узнать, кто ее разместил.

Теперь хочу получить информацию о пользователе из status table чтобы узнать, кто написал статус. Здесь возникает проблема.

SQL Fiddle http://sqlfiddle.com/#!9/d0707b/2

Мой текущий запрос

select l.*,  s.* , a.id as aid, a.userName from likes l
left join 
    statuses s on l.source_id = s.id
left join 
   users a on l.user_id = a.id
where 
   l.user_id in (5,7) 
or
   (s.privacy='Public' and s.interest in ('mobile', 'andriod') )

order by l.id desc

Here s.user_id=a.id Я хочу присоединиться к таблице статусов с пользовательской таблицей.

[Если вопрос непонятен, прокомментируйте, попытайтесь отредактировать]

Спасибо.

Теги:
database
left-join

1 ответ

1
Лучший ответ

Вы должны снова присоединиться к таблице user. Посмотрите здесь:

SELECT
    l.*, s.*,
    a.id AS aid,
    a.userName,
    b.userName
FROM
    likes l
LEFT JOIN statuses s ON l.source_id = s.id
LEFT JOIN users a ON l.user_id = a.id
LEFT JOIN users b ON s.user_id = b.id
WHERE
    l.user_id IN (5, 7)
OR (
    s.privacy = 'Public'
    AND s.interest IN ('mobile', 'andriod')
)
ORDER BY
    l.id DESC
  • 1
    Спасибо, это сработало

Ещё вопросы

Сообщество Overcoder
Наверх
Меню