我有下面两个数据库表:
类(class)模块表:
CourseId ModuleId
1 1
1 2
1 3
模块表:
ModuleId ModuleNo ModuleName Credits
1 CHI2513 Systems Strategy 20
2 CHI2550 Modern Database Applications 20
3 CHI2565 Ecommerce - Business and Technology 20
4 CHT2220 Interactive Systems 20
5 CHT2520 Advanced Web Programming 20
6 CHI2554 Patent Law 40
现在我不知道如何执行此操作,但我想要做的是创建查询,它将输出一组记录,其中显示不在所选类(class)中的模块列表。
例如,如果CourseId = 1
,那么它应该从查询中输出的模块如下:
4 CHT2220 Interactive Systems 20
5 CHT2520 Advanced Web Programming 20
6 CHI2554 Patent Law 40
这是因为正如您在 Course_Module 表中看到的那样,这些模块不属于选择的 CourseId 1
。
但是如何编写这样的查询呢?下面只是我创建的一个简单查询:
SELECT cm.CourseId, m.ModuleId, m.ModuleNo, m.ModuleName, m.Credits
FROM Course_Module cm
INNER JOIN Module m ON cm.ModuleId = m.ModuleId
WHERE
(CourseId = 1)
ORDER BY ModuleNo
最佳答案
以下怎么样?
SELECT
m.*
FROM
Module m
WHERE
m.ModuleId NOT IN (
SELECT cm.ModuleId
FROM Course_Module cm
WHERE cm.CourseId = 1
);
关于php - 如何编写查询来查找不属于所选字段的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13655929/