Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Zählen mit LEFT JOIN zeigt nur eine Zeile

Sie benötigen ein GROUP BY in Ihrer äußeren Abfrage, ansonsten zählt die Abfrage einfach den Status für alle Banken. Sie können Ihre Abfrage auch vereinfachen, indem Sie einfach LEFT JOIN verwenden die beiden Tabellen auf Code/ID und 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

Ausgabe

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

Demo auf dbfiddle