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

Vyberte řádky závislé na počtu z více tabulek se sjednocením

Zkomplikovali jste svůj dotaz, stačí použít group by k získání počtů podle skupin. Aktualizace:protože máte stejné klíče v tabulkách 4a i 4b a chcete je shrnout do jednoho výstupu, potřebujete celkový součet nebo počet v závislosti na použitém poddotazu

select kd_hari, hari, sum(rowcount) as rowcount from
    (select a.kd_hari,hari, count(a.kd_hari) as rowcount
    from 4a a,tbhari h where a.kd_hari=h.kd_hari and kd_ruang in('L','P')
    group by a.kd_hari,hari
    union all
    select b.kd_hari,hari, count(b.kd_hari) 
    from 4b a,tbhari h where a.kd_hari=h.kd_hari and kd_ruang in('L','P')
    group by a.kd_hari,hari) as t
group by kd_hari,hari

Případně zkombinujte 4a a 4b se sjednocením vše v poddotazu a připojte to v tabulce tbhari a můžete použít count() s group by na poddotaz, protože poddotaz bude zahrnovat všechny řádky z obou tabulek.

Nicméně, jak jsem napsal ukázkový kód, můžete využít stávající indexy při spojování tabulek. Pokud je nejprve zkombinujete se sjednocením a poté provedete spojení, nebudou pro spojení použity žádné indexy.




  1. Jak získat přístup ke vzdálené databázi mysql pomocí java

  2. jak serializovat a deserializovat objekt hibernace?

  3. Odečtěte dva záznamy stejného sloupce v tabulce

  4. Odstraňte soubory, které nejsou v mySQL TABLE