如何使用<>
代替NOT IN
SELECT ward_no, COUNT(patient_id) AS occupying
FROM patient
WHERE ward_no NOT IN ('w5', 'w7')
GROUP BY ward_no
答案 0 :(得分:0)
你可以这样做:
SELECT ward_no, COUNT(patient_id) AS occupying
FROM patient
WHERE ward_no <> 'w5' AND ward_no <> 'w7'
GROUP BY ward_no
但它比简单的NOT IN更重,所以我不会自己这样做。
答案 1 :(得分:0)
使用此:
SELECT ward_no, COUNT(patient_id) AS occupying
FROM patient
WHERE ward_no <> 'w5' AND ward_no <> 'w7'
GROUP BY ward_no
答案 2 :(得分:0)
从这里回答:https://dev.mysql.com/doc/refman/5.5/en/all-subqueries.html
NOT IN是&lt;&gt;的别名所有。因此,这两个陈述是相同的:
SELECT s1 FROM t1 WHERE s1 <> ALL (SELECT s1 FROM t2);
SELECT s1 FROM t1 WHERE s1 NOT IN (SELECT s1 FROM t2);