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

¿Cómo contar la cantidad de instancias de cada ID de clave externa en una tabla?

Su consulta es casi correcta y es la forma correcta de hacerlo (y la más eficiente)

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(*) podría incluir valores NULL en el conteo porque cuenta todas las filas, mientras que COUNT(orders.book_id) no lo hace porque ignora los valores NULL en el campo dado.