Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
14.04.2021, 20:26
|
|||
---|---|---|---|
|
|||
Left Join по нескольким полям |
|||
#18+
Добрый вечер Есть пара таблиц В каждой есть несколько полей комбинация которых в одной из таблиц уникальна, а в другой будет несколько строк и при этом количество этих "несколько строк" может отличаться. основной смысл запроса получить полный перечень первой таблицы и значения из второй по определенному критерию, с null там где такого критерия нет. как используя джойны соединить таблицы чтобы получить в результирующем запросе "пропущенные" строки второй таблицы вот для объяснения Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
запрос 1 - обычный join выдает строки которые которые есть в двух таблицах, тут все разумно и освоено запрос 2 - а вот left выдает null только если никакого из трех полей нет в Т2 запрос 3 - ну тут все понятно где есть значение выводим (3 строки) запрос 4 - а вот тут получается что результат как в 3м, но хотелось то получить 6 строк и 3 из них с null как получить вот такое Код: plaintext 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.04.2021, 20:41
|
|||
---|---|---|---|
|
|||
Left Join по нескольким полям |
|||
#18+
1. посмотри в сторону outer apply select #T1.*, B.* from #T1 outer apply (select top 1 * from #T2 where #T1.num = #T2.num AND #T1.ver = #T2.ver AND #T1.pos = #T2.pos) B 2. Непонятно как в результате-примере получется 1 1 2 egx NULL NULL NULL NULL NULL 2 1 2 xe NULL NULL NULL NULL NULL ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.04.2021, 20:46
|
|||
---|---|---|---|
Left Join по нескольким полям |
|||
#18+
Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
15.04.2021, 11:50
|
|||
---|---|---|---|
|
|||
Left Join по нескольким полям |
|||
#18+
invm, ОГРОМНОЕ СПАСИБО идеальный результат, как то никогда в голову не приходило, что в объединении можно подставить одно из полей как значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.04.2021, 16:27
|
|||
---|---|---|---|
|
|||
Left Join по нескольким полям |
|||
#18+
Запрос вида Код: sql 1. 2. 3.
эквивалентен запросу Код: sql 1. 2. 3.
Правильно так: Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
21.04.2021, 18:32
|
|||
---|---|---|---|
Left Join по нескольким полям |
|||
#18+
Джонни Кейдж Запрос вида Код: sql 1. 2. 3.
эквивалентен запросу Код: sql 1. 2. 3.
Правильно так: Код: sql 1. 2.
то первый запрос тоже допустим. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.04.2021, 13:41
|
|||
---|---|---|---|
|
|||
Left Join по нескольким полям |
|||
#18+
iap Не совсем так. Есть нюансы: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.04.2021, 14:00
|
|||
---|---|---|---|
|
|||
Left Join по нескольким полям |
|||
#18+
Uridian, где в примере "учитываются возможные значения NULL"? В примере они отрицаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.04.2021, 14:10
|
|||
---|---|---|---|
|
|||
Left Join по нескольким полям |
|||
#18+
Владислав Колосов Uridian, где в примере Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
22.04.2021, 15:16
|
|||
---|---|---|---|
Left Join по нескольким полям |
|||
#18+
Uridian Владислав Колосов Uridian, где в примере Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
В WHERE ограничения на правую таблицу LEFT JOIN, а результат тем не менее тот же. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=46&mobile=1&tid=1684787]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 170ms |
0 / 0 |