Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Policz z LEFT JOIN pokazuje tylko jeden wiersz

Potrzebujesz GROUP BY w zewnętrznym zapytaniu, w przeciwnym razie zapytanie po prostu zlicza status dla wszystkich banków. Możesz również uprościć zapytanie, po prostu LEFT JOIN w dwóch tabelach dotyczących kodu/id i statusu =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

Wyjście

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 na dbfiddle




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tabela zamknięć MySql nie obsługuje zduplikowanych podkategorii dla różnych rodziców

  2. MySQL DROP wszystkie tabele, ignorując klucze obce

  3. PHP 7 RC3:Jak zainstalować brakujące PDO MySQL

  4. Pokaż wszystkie daty między, nawet jeśli nie ma wyników

  5. Jak zastosować operację SUMA bez grupowania wyników w SQL?