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

Count s LEFT JOIN zobrazuje pouze jeden řádek

Potřebujete GROUP BY ve vašem vnějším dotazu, jinak dotaz jednoduše počítá stav pro všechny banky. Svůj dotaz můžete také zjednodušit pouhým LEFT JOIN ing dvou tabulek pro kód/id a status =0

SELECT b.type `scu_banks.type`,
b.name `scu_banks.name`,
COUNT(s.status) `status`,
b.id `scu_banks.id`
FROM scu_banks b
LEFT JOIN scu_statement s ON s.code = b.id AND s.status = 0
GROUP BY b.id, b.name, b.type

Výstup

scu_banks.type  scu_banks.name  status  scu_banks.id
1               One             2       1
1               Two             1       2
2               Three           0       3
3               Four            0       4

Ukázka na dbfiddle




  1. Jaký je maximální počet spojení povolený v SQL Server 2008?

  2. Oracle vložit do tabulky2 a poté odstranit z tabulky1, výjimka, pokud selže

  3. Chcete-li převést řetězec na tabulku se schématem

  4. Podpora Bool Oracle SQL