Menggunakan pernyataan kasus tidak akan membuat kueri lebih cepat dalam kasus Anda, tetapi karena Anda memintanya, di bawah ini akan terlihat seperti apa.
SELECT a.folderid, a.foldername, a.contenttype,
(CASE a.contenttype
WHEN 'file' THEN b.descriptor
WHEN 'link' THEN c.descriptor
WHEN 'extfile' THEN d.descriptor
WHEN 'video' THEN e.descriptor
ELSE f.descriptor
END CASE) 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
Jika setiap tabel t_files, t_links, dll memiliki bidang folder_id, saya juga akan mencoba melakukan UNION pada tabel ini dan kemudian menggabungkan hasilnya dengan t_folders untuk mendapatkan folderid dan nama folder.