Я создаю запрос, в котором я пытаюсь сделать эксклюзивное левое соединение, но я не мог найти решение без использования двух запросов, связанных с объединением всех.Эксклюзивное левое соединение на нескольких таблицах
My SQL, что не работает, как ожидалось:
select link_table.key as lk_key, table_a.key as a_key, table_b.key as b_key
from link_table
left join table_a on (link_table.key = table_a.key_link_table)
left join table_b on (link_table.key = table_b.key_link_table)
Что я получаю в результате:
lk_key a_key b_key
123 abc xyz
456 def uvw
789 ghi NULL
Мой обходной путь:
select link_table.key as lk_key, table_a.key as a_key, null as b_key from link_table
left join table_a on (link_table.key = table_a.key_link_table)
union all
select link_table.key as lk_key, null as a_key, table_b.key as b_key from link_table
left join table_b on (link_table.key = table_b.key_link_table)
Что я получаю в результате и хотел бы получить первый SQL t О выполнения:
lk_key a_key b_key
123 abc NULL
123 NULL xyz
456 def NULL
456 NULL uvw
789 ghi NULL
Возможно ли это в одном запросе?
Что случилось с вашим «обходным решением»? –
Если это сработает, зачем его менять? Это займет 9 лет? Выводит ли он неправильные данные? В нем слишком много гласных? – Siyual
Я подумал, что, возможно, было ключевое слово sql/oracle, которое соответствует моей конкретной потребности вместо использования union. И нет, пока у меня нет проблем с производительностью. Просто мне потребовалось некоторое время, пока я не выяснил проблему. – Flexy