我有一个存储课程的表A和存储用户当前进度的表B.
表A具有每个课程(courseID)的唯一ID列,表B中也存在相同名称(因此它们的关系)。
我想从表A中获取表B中不存在ID的所有行(例如,目前没有用户进入此课程)
这两个表不使用外键,只使用同名的列。
答案 0 :(得分:2)
TRY
SELECT A.* FROM tableA A
LEFT JOIN tableB B ON USING (courseID)
WHERE B.courseID IS NULL
答案 1 :(得分:1)
SELECT * FROM A WHERE A.courseID NOT IN (SELECT courseID FROM B);
答案 2 :(得分:0)
您需要LEFT JOIN
SELECT * FROM `tableA`
LEFT JOIN `tableB` ON `tableA`.`ID`=`tableB`.`ID`
WHERE `tableB`.`ID` IS NULL;
答案 3 :(得分:0)
您使用的数据库是什么? 如果您使用的是Oracle,我认为您需要:
select A.student_code from A where not exists
( select 'x' from B where B.student_code = A.student_code)
至少那是我认为你要求的......