|
JOIN трех таблиц
|
|||
---|---|---|---|
#18+
Всем привет! Помогите, пожалуйста, с запросом. Предположим, есть три таблицы: mysql> select * from person; Код: plaintext 1. 2. 3. 4. 5. 6.
mysql> select * from adress; Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
mysql> select * from phone; Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
Нужно одним запросом получить такой результат - Список людей, живущих на Lucas st., их домашний адрес и домашний номер телефона (И чтобы отображался результат с NULL, то есть человек без home phone number) Код: plaintext 1. 2. 3. 4. 5.
Запрос вида Код: sql 1. 2. 3. 4. 5.
Показывает только первую строку из нужного результата Код: plaintext 1. 2. 3. 4.
Различные комбинации из LEFT и RIGHT JOINS показываю тоже самое. Никак не могу понять, как добиться нужного результата. Джоинить таблицы в другом порядке? Или использовать Union ALL? Подскажите, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 11:43 |
|
JOIN трех таблиц
|
|||
---|---|---|---|
#18+
vlad5h, Показывайте ваши запросы с "Различными комбинациями из LEFT и RIGHT JOINS" Но даже не видя запросы можно сказать, что вы своим WHERE "срезаете" все данные внешнего соединения до обычного INNER JOIN-а... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 12:00 |
|
JOIN трех таблиц
|
|||
---|---|---|---|
#18+
попробуйте перенести условие AND ph.type = 'home' из секции where в секцию on и сделать соединение левым: vlad5h Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2020, 12:12 |
|
|
start [/forum/topic.php?fid=47&tid=1828753]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
3ms |
track hit: |
153ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 256ms |
0 / 0 |