2017-12-23 41 views
0

サブデータベースの質問は、というmysqlデータベースにあります。 bookテーブルのテーブルがauthor_idで、authorテーブルのテーブルがidnameであるとします。私は各著者のための本の数と著者リストを取得したい。だから私はこのクエリを使用します:最適化された方法でサブクエリでCOUNTを選択する方法

SELECT a.id as id, a.name as name, 
(SELECT COUNT(*) FROM book b WHERE b.author_id = a.id) as count 
From author a 

これは問題なく動作します。しかし、私は知りたい、このソリューションは、このような例のための最高の最適化されたソリューションですか?そうでない場合は、これらの問題のより良い回避策がありますか?

ご清聴ありがとうございました。

+0

ないすべての著者が本テーブルの本を持っている場合

SELECT a.id AS id, a.name AS name, count(b.id) AS 'count' FROM author a LEFT JOIN BOOK b ON b.author_id = a.id GROUP BY a.id, a.name; 

left joinを使用すると良いでしょう、そうでないinner joinが最適になります。 – Barmar

答えて

関連する問題