sql >> Databasteknik >  >> RDS >> Mysql

Räkna med LEFT JOIN visar endast en rad

Du behöver en GROUP BY i din yttre fråga, annars räknar frågan helt enkelt status för alla banker. Du kan också förenkla din fråga genom att bara LEFT JOIN ing de två tabellerna om kod/id och 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

Utdata

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 på dbfiddle




  1. Finns det ett sätt att indexera i postgres för snabba delsträngsökningar

  2. MySQL tror att underfrågan härleds när den inte är det!

  3. Hur man importerar och exporterar en MySQL-databas

  4. Lagra ändringar på enheter:Är MySQL den rätta lösningen?