sql >> Database teknologi >  >> RDS >> Mysql

Tæl med LEFT JOIN viser kun én række

Du skal bruge en GROUP BY i din ydre forespørgsel, ellers tæller forespørgslen blot status for alle banker. Du kan også forenkle din forespørgsel ved blot at LEFT JOIN ing af de to tabeller om kode/id og 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

Output

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. Hvordan får man optælling af rækker i MySQL-tabel ved hjælp af PHP?

  2. Sådan tilføjer du AM/PM til en tids- eller datotidsværdi i MariaDB

  3. Tyrkisk tegnkodning med MySQL

  4. Gennemsnit af datoer i oracle sql