Это то, что я считаю довольно распространенным, но я просто борюсь с подходящим запросом.Три способа соединения с таблицей ссылок
User Table
id
Member table
id
name
User Member link table
user_id
member_id
Пользователь может существовать в таблице пользователя, но не имеет строки в таблице ссылок пользователя.
Я хочу выбрать все строки таблицы пользователя и где у пользователя есть ссылка на элемент в таблице ссылок пользовательского элемента, чтобы показать столбцы, связанные с ними из таблицы-члена.
Вот что у меня есть, но он получает только строки из таблицы пользователя, которые связаны:
SELECT user.id, user.username, member.id, member.name
FROM users
LEFT JOIN user_member ON user.id = user_member.user_id
JOIN member ON user_member.member_id = member.id;
я должен получить что-то вроде этого:
user.id user.username member.id member.name
1 bob null null
2 alice 10 Alice
3 jane 11 Jane
4 joe null null
Любые предложения?
Почему вы используете 'ЛЕВЫЙ JOIN' для одного соединения, но не для других? –
Ну, если я использую LEFT JOIN для второго соединения, я получаю все строки из USER, но там, где есть соответствующий член, я получаю повторяющуюся строку. –
Можете ли вы предоставить образец вывода, который вы ожидаете? Кроме того, если у пользователя много членов, вы не можете избежать дублирования пользовательских данных. – Alex