여러 개의 조인이있는 테이블을 선택하려고합니다. 하나는 COUNT를 사용하는 주석의 수이고 다른 하나는 SUM을 사용하여 총 투표 값을 선택하는 것입니다. 문제는 두 조인이 서로 영향을 준다는 것입니다. 게재 :mysql : multiple join problem
3 표 2 개의 댓글
나는이 내가 사용하고 쿼리 3 * 2 = 6 표, 2 * 3 개의 댓글
를 얻을 :
SELECT t.*, COUNT(c.id) as comments, COALESCE(SUM(v.vote), 0) as votes
FROM (topics t)
LEFT JOIN comments c ON c.topic_id = t.id
LEFT JOIN votes v ON v.topic_id = t.id
WHERE t.id = 9
더 많은 로딩과 데이터베이스 작업이 필요하지 않거나 데이터베이스가 여러 조인을 사용하여 작업을 분리하는 것이 더 힘들지 않습니까? – Dennis
대부분의 데이터베이스에는 데이터 및 인덱스 페이지에 대한 내부 캐싱이 있으므로 문제가되지 않을 수 있습니다. 또한 데카르트 제품을 보완하는 데 필요한 작업이 더 나쁠 수 있습니다. 부분적으로 이는 특정 시스템과 데이터에 따라 다르므로 가장 정확한 대답은 * 사용자 환경에서의 테스트가 필요합니다. –