2017-12-23 47 views
0

mysql 데이터베이스의 하위 쿼리에 건의 질문이 있습니다. book 테이블에 author_idauthor 테이블이 있고 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

답변