我有一个查询来从数据库中选择视频。
每个视频都有thumbnails
表中与之关联的多个缩略图。我想避免在缩略图状态为0,2,3的结果中包含任何视频。我无法加入缩略图表,因为每个视频都有多个具有不同状态的相关缩略图(对于每个缩略图) )。
这个查询很慢,有什么方法可以优化它吗?或者有没有办法在没有子查询的情况下做我需要的事情。
SELECT `videos`.`id_video`, `videos`.`date_added`
FROM `videos`
WHERE (`videos`.`status` = 1 AND NOT (`videos`.`id_video` IN (SELECT U1.`id_video` AS Col1 FROM `thumbnails` U1 WHERE U1.`status` IN (0, 2, 3))))
LIMIT 5000;
答案 0 :(得分:2)
试一试:
SELECT `videos`.`id_video`, `videos`.`date_added`
FROM `videos`
WHERE `videos`.`status` = 1 AND
NOT EXISTS (
SELECT 1
FROM `thumbnails` U1
WHERE U1.`status` IN (0, 2, 3) AND
`videos`.`id_video` = U1.`id_video`
)
LIMIT 5000;