これらの要件は十分に混乱しているため、データモデルを再評価する価値があるかもしれません。 UNION
だと思います ソリューションは、UNION ALL
を使用するように変更するのが最善の策です。 効率のために。
私は、このページの他のクエリと同じくらい多くの微妙な問題を抱えている可能性が高いミューテックスベースのハックをまとめました。
select
coalesce(t2.id, t1.name) AS ID,
coalesce(t2.company, t1.name) AS Company,
if(isnull(t2.id), 'NOT FOUND', 'FOUND') as Status
from (select 0 as mutex union select 1) as m
left join table1 as t1 on 1 = 1
left join table2 as t2 on t1.name = t2.name or (t1.id = t2.id and mutex)
group by coalesce(t2.id, t1.name)
ただし、これらのクエリを注意深くテストし、データと結果を確認してください。入力データによっては、エラーの余地がたくさんあります。