sql >> Databáze >  >> RDS >> Mysql

sql jak zkombinovat tři dotazy ze dvou tabulek do jednoho dotazu

Tyto požadavky jsou natolik matoucí, že by možná stálo za to přehodnotit váš datový model. Myslím, že UNION řešením je vaše nejlepší sázka, možná upravená pro použití UNION ALL pro efektivitu.

Sestavil jsem hack založený na mutexu, který má pravděpodobně tolik jemných problémů jako kterýkoli z ostatních dotazů na této stránce.

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)

To znamená, že tyto dotazy pečlivě otestujte a prohlédněte si svá data a výsledky. V závislosti na vašich vstupních datech je velký prostor pro chyby.



  1. Jak získat seznam dat mezi dvěma daty v dotazu na výběr mysql

  2. Přidání zalomení řádku do textu MySQL INSERT INTO

  3. Rozdíl mezi časovými razítky s/bez časového pásma v PostgreSQL

  4. Část 2:Klasifikace obrázků pomocí serveru MariaDB a TensorFlow – výukový program