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

Optimalizujte dotaz UNION mysql

V zásadě ukazujete, že máte ve svém modelu problém s návrhem, kdy se zdá, že při implementaci super/podtypů byla učiněna špatná volba. Vaším funkčním požadavkem je mít (simulovaná) data ze dvou různých tabulek jako jednu jednotnou sadu. To by bylo jednoduché, kdyby všechny tyto řádky byly v jedné tabulce. Skutečnou otázkou tedy je, proč nejsou.

Stále můžete získat tento dotaz rychleji (předpokládám), ale je to ošklivé.

SELECT * FROM 
   (SELECT * FROM (select title, id, date as date_added from test1 
                  ORDER BY date_added DESC LIMIT 0,8) t1
    UNION ALL 
    SELECT * FROM (select title, customer as id, date_added from test2 
                  ORDER BY date_added DESC LIMIT 0,8) t2
   ) joined
ORDER BY date_added DESC
LIMIT 0,8 


  1. Vyberte řádky z tabulky, kde řádek v jiné tabulce se stejným ID má konkrétní hodnotu v jiném sloupci

  2. SQL vrátit sloučenou sadu výsledků

  3. předat soubor sql nodejs pro spuštění jako celek

  4. Vývoj odolnosti vůči chybám v PostgreSQL:Synchronní závazek