sql >> Database >  >> RDS >> Mysql

sql hoe u drie query's uit twee tabellen in één query kunt combineren

Deze vereisten zijn verwarrend genoeg, het kan de moeite waard zijn om uw datamodel opnieuw te beoordelen. Ik denk dat de UNION oplossing is uw beste gok, eventueel aangepast om UNION ALL te gebruiken voor efficiëntie.

Ik heb een op mutex gebaseerde hack samengesteld die waarschijnlijk net zoveel subtiele problemen heeft als alle andere vragen op deze pagina.

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)

Dat gezegd hebbende, test deze zoekopdrachten zorgvuldig en bekijk uw gegevens en resultaten. Er is veel ruimte voor fouten, afhankelijk van uw invoergegevens.



  1. Een getal omzetten in een woord in Mysql

  2. Hoe groot kan een MySQL-database worden voordat de prestaties achteruit gaan?

  3. Rails 4 session.id af en toe nul

  4. Query's dynamisch maken in rails