질문 테이블에서 데이터를 얻은 다음 LEFT JOIN 제품 응답을 얻어야합니다. 특정 카테고리의 모든 질문 목록 (약 200 개 카테고리 중 총 16 개 카테고리)이 필요하며 특정 제품 ID에 대한 질문 옆에 제품 답변을 나열하십시오.mySQL 쿼리 최적화 LEFT JOIN
SELECT `questions`.`id`, `questions`.`text`, `questions`.`catalogue_id`, `productanswers`.`answer`
FROM `questions`
LEFT JOIN `productanswers` ON `productanswers`.`question_id` = `questions`.`id`
AND product_id = '2001682'
WHERE `catalogue_id` IN (1234912,1234913,1234914)
ORDER BY `catalogue_id`
약 17 개의 결과가 예상대로 반환됩니다. 이 제품에 대한 답이없는 질문은 Null로 채워집니다.
문제는 쿼리를 실행하는 데 약 23 초가 걸린다는 점입니다. -o 모든 카탈로그 질문으로 전체 쿼리를 작성할 수 없습니다.
어떻게 쿼리를 최적화 할 수 있습니까? 아니면 다른 아이디어가 있습니까?
감사합니다, 태프
테이블 열을 추가하고 질문에 "설명"할 수 있습니까? – frail