sql >> Base de Datos >  >> RDS >> Mysql

Contar con LEFT JOIN muestra solo una fila

Necesitas un GROUP BY en su consulta externa, de lo contrario, la consulta simplemente cuenta el estado de todos los bancos. También puede simplificar su consulta simplemente LEFT JOIN ing las dos tablas en código/id y estado =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

Salida

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

Demostración en dbfiddle