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

Come contare il numero di istanze di ciascun ID di chiave esterna in una tabella?

La tua richiesta è quasi giusta ed è il modo giusto per farlo (e il più efficiente)

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(*) potrebbe includere valori NULL nel conteggio perché conta tutte le righe, mentre COUNT(orders.book_id) non perché ignora i valori NULL nel campo specificato.