에 최적화 가입MYSQL LEFT CASE
가 어떻게이 SELECT를 최적화 할 수있다 (지금은) 내가 COLASCE를 (사용하고 그에게 감사) ... 나는 CASE와이 SELECT 작업려고 몇 시간을 보냈다 그러나 나는 실패 CASE/IF 문장을 사용하여? 이것은 필드에 의해 선택된 다른 테이블에서 쿼리하는 빠른 방법입니까?
SELECT a.folderid, a.foldername, a.contenttype, COALESCE(b.descriptor, c.descriptor, d.descriptor, e.descriptor, f.descriptor) as descriptor
FROM t_folders a
LEFT JOIN t_files b
ON a.contenttype = 'file' AND a.contentid = b.fileid
LEFT JOIN t_links c
ON a.contenttype = 'link' AND a.contentid = c.linkid
LEFT JOIN t_extfiles d
ON a.contenttype = 'extfile' AND a.contentid = d.extfileid
LEFT JOIN t_videos e
ON a.contenttype = 'video' AND a.contentid = e.videoid
LEFT JOIN t_exams f
ON a.contenttype = 'exam' AND a.contentid = f.examid
WHERE a.folderid = $folderId
ORDER BY a.folderid DESC
정확히 달성하기를 원하십니까? 왜 CASE 또는 IF를 사용합니까? 무엇을 최적화하고 싶습니까? COALESCE가하는 일이 당신에게 분명합니까? 그렇다면 왜 당신이 찾고있는 것이 아닙니다. – fancyPants
CASE/IF에 대해 LEFT JOIN을 대체 할 수 있는지 알고 싶습니다. mysql이 더 빠를 수 있습니까? – kbitdn
@tombom 및 kbitdn :이 질문에 대한 답변이 없지만 그 질문에도 관심이 있습니다 ... 비슷한 문제가 있습니다 ... – Chris