MYSQL<>运算符而不是NOT IN

时间:2015-04-24 08:52:11

标签: mysql sql where-clause

如何使用<>代替NOT IN

来回答此问题
SELECT ward_no, COUNT(patient_id) AS occupying
FROM patient
WHERE ward_no NOT IN ('w5', 'w7')
GROUP BY ward_no

3 个答案:

答案 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);