下面是一个使用IN和NOT IN子查询的示例代码:
假设我们有两个表,一个是学生表(students),包含学生的ID和姓名;另一个是选课表(courses),包含学生的ID和所选课程的名称。
现在我们想要找出选择了特定课程的学生和没有选择该课程的学生。
学生表(students):
| ID | Name |
|---|---|
| 1 | Alice |
| 2 | Bob |
| 3 | Charlie |
| 4 | David |
选课表(courses):
| ID | Course |
|---|---|
| 1 | Math |
| 2 | Science |
| 3 | English |
| 4 | History |
我们想要找出选择了Math课程的学生和没有选择Math课程的学生。
以下是使用IN和NOT IN子查询的代码示例:
-- 选择了Math课程的学生
SELECT Name
FROM students
WHERE ID IN (SELECT ID FROM courses WHERE Course = 'Math');
-- 没有选择Math课程的学生
SELECT Name
FROM students
WHERE ID NOT IN (SELECT ID FROM courses WHERE Course = 'Math');
上述代码中,第一个查询找出了选择了Math课程的学生,使用了IN子查询来判断学生的ID是否在选择了Math课程的学生ID列表中。
第二个查询找出了没有选择Math课程的学生,使用了NOT IN子查询来判断学生的ID是否不在选择了Math课程的学生ID列表中。
通过使用IN和NOT IN子查询,我们可以根据特定条件找出不一致的结果。
上一篇:不一致的IIS日志配置