|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
Уважаемые коллеги, прошу подсказки: есть таблица T Код: plaintext 1. 2. 3. 4.
Иногда в ней нет строки В. Надо написать запрос, который всегда выводит строки А и В, даже если нет строки В, но в этом случае в col2 должно выводиться 0. Т.е. в случае Код: plaintext 1. 2. 3. 4.
выводится Код: plaintext 1. 2.
А в случае если Т Код: plaintext 1. 2. 3.
выводится Код: plaintext 1. 2.
Сейчас делаю так: Код: sql 1. 2. 3. 4. 5.
но понимаю, что можно как-то более красиво... Подскажите, пожалуйста, как... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 15:53 |
|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
Ой, простите, Код: sql 1. 2. 3. 4. 5.
конечно же ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 16:13 |
|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
amadis Ой, простите, конечно же UNION ALL ps можно a full outer join b on (b.col1=a.col1) запутано и некрасиво ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 16:51 |
|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
Stax, UNION, UNION ALL - мне кажется, что тут без разницы... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 17:04 |
|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
amadis Stax, UNION, UNION ALL - мне кажется, что тут без разницы... Это тебе только кажется: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 17:07 |
|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
amadis Stax, UNION, UNION ALL - мне кажется, что тут без разницы... если две/одна строка то да но Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
.... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2021, 17:49 |
|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
SY, спасибо за объяснение. Таким образом сейчас запрос стал Код: plsql 1. 2. 3. 4. 5.
А ещё в более "красивый" вид его нельзя переписать? Три селекта с union - чтобы добавить одну строку - неужели это оптимальный способ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 09:46 |
|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
amadis А ещё в более "красивый" вид его нельзя переписать? создаёшь справочник, где перечисляешь все нужные значения Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Это если проектировать. Если нельзя таблицы создавать, то используешь аналогичный СТЕ Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 10:45 |
|
добавить строку в вывод select, если её нет в таблице
|
|||
---|---|---|---|
#18+
Добавить во 2й селект Код: plsql 1.
не очень нравится? И избавиться от ненужного group ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2021, 14:01 |
|
|
start [/forum/topic.php?fid=52&fpage=14&tid=1879987]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 230ms |
total: | 399ms |
0 / 0 |