Persyaratan ini cukup membingungkan sehingga perlu dilakukan penilaian ulang terhadap model data Anda. Menurut saya UNION
solusi terbaik Anda mungkin dimodifikasi untuk menggunakan UNION ALL
untuk efisiensi.
Saya memang mengumpulkan peretasan berbasis mutex yang kemungkinan memiliki banyak masalah halus seperti halnya pertanyaan lain di halaman ini.
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)
Karena itu, harap uji kueri ini dengan cermat dan periksa data serta hasil Anda. Ada banyak ruang untuk kesalahan tergantung pada data input Anda.