sql >> Base de Datos >  >> RDS >> Mysql

sql cómo combinar tres consultas de dos tablas en una consulta

Estos requisitos son lo suficientemente confusos como para que valga la pena volver a evaluar su modelo de datos. Creo que la UNION la solución es su mejor apuesta posiblemente modificada para usar UNION ALL para la eficiencia.

Preparé un truco basado en mutex que probablemente tenga tantos problemas sutiles como cualquiera de las otras consultas en esta página.

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)

Dicho esto, pruebe estas consultas cuidadosamente y revise sus datos y resultados. Hay mucho margen de error dependiendo de los datos de entrada.