[英]MySQL: comparing multiple rows from a joint table to the primary table using NOT IN?
SELECT SQL_CALC_FOUND_ROWS e.*
FROM exercises e
LEFT JOIN exercise_targetedmuscles em ON em.exerciseID = e.exerciseID
WHERE (em.targetedMuscleID NOT IN(15,16,17,14,3,12,9,8,7,18,4,2) AND em.isPrimary = 1)
GROUP BY e.exerciseID
ORDER BY e.name ASC
我想确保锻炼的目标肌肉(可能有很多)都不在列表中“(15,16,17,14,3,12,9,8,7,18,4, 2)”,但是这只检查它找到的第一个。 如何检查来自exercise_targetedmuscles的所有匹配行,而不仅仅是第一行?
谢谢!
尝试这个:
SELECT SQL_CALC_FOUND_ROWS e.*
FROM exercises e
WHERE NOT EXISTS
(
SELECT 1
FROM exercise_targetedmuscles em
WHERE em.exerciseID = e.exerciseID
AND em.targetedMuscleID IN(15,16,17,14,3,12,9,8,7,18,4,2)
AND em.isPrimary = 1
)
GROUP BY e.exerciseID
ORDER BY e.name ASC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.