|
|
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Добрый день Если упрощенно, то есть таблички: Код: 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. В реальной жизни таблицы a и b идентичны между собой по набору полей. Хочется получить результат из примерно такого запроса: Код: sql 1. 2. 3. 4. 5. 6. 7. Понятно, что этот запрос некорректен, иначе бы я сюда не писал. Вопрос: как переписать этот запрос, чтобы результат был аналогичный? Предвещая вопросы "А почему бы a и b не объединить в одну таблицу" могу сказать, что хоть структура у них и идентична, но они отличаются набором NOT NULL полей, т.е. одна табличка как бы для статистического мусора, а вторая для реальных чистых данных, с которыми потом много операций проводят и не очень хочется каждое поле потом проверять на NULL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 07:22:23 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
_sky_, нужно соединить сначала с одной таблицей, потом с другой, а результаты объединить через union all. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 07:33:35 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
А каким образом это реализуемо, если в таблице main будут заполнены и a_link, и b_link? Можно пример в виде запроса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 07:36:37 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Я изначально чуть ошибся с запросом, правильнее так: Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 07:40:27 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Alexius, попробовал так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. но на выходе получаю 6 строк, хотя в таблице main всего 3 строки. Или я что-то не так понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 07:48:08 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
_sky_, как-то так: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 07:54:06 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Alexius, Код: sql 1. 2. 3. 4. 5. Что-то не выходит каменная чаша, синтаксическая ошибка, несколько WHERE-условий недопустимы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 08:06:40 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
_sky_, после union all select конечно же должен быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 08:11:39 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Alexius, к сожалению, это не конечный запрос, там еще много джойнов, который используют данные из таблицы main. Более того, есть много where условий, которые должны использовать алиас link. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 08:32:14 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 09:13:54 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Гхостик, Вы просто гений!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 07:39:07 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
_sky_Гхостик, Вы просто гений!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! можно без всяких юнионов SELECT main.id, coalesce(a.title, b.title) as title FROM main LEFT OUTER JOIN a ON a.id = main.a LEFT OUTER JOIN b ON b.id = main.b ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 12:43:51 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Ivan Durak, очень много полей в выборке, плюс надо проверять кучу условий, ваша конструкция в моих условиях не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2014, 15:54:08 |
|
||
|
JOIN разных таблиц с одним алиасом по условию
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2014, 15:27:06 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=122&tid=1998467]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 469ms |

| 0 / 0 |
