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

Wie kann man die Anzahl der Instanzen jeder Fremdschlüssel-ID in einer Tabelle zählen?

Ihre Abfrage ist fast richtig und es ist der richtige Weg, dies zu tun (und der effizienteste)

SELECT books.*, count(orders.book_id) as number_of_orders        
from books
left join orders
on (books.book_id = orders.book_id)
group by
    books.book_id

COUNT(*) könnte NULL-Werte in die Zählung einbeziehen, da alle Zeilen gezählt werden, während COUNT(orders.book_id) nicht, weil es NULL-Werte im angegebenen Feld ignoriert.