我有两个表,一个称为Classes
,其中包含ClassName
,另一个称为FullSchedule
,其中包含ClassName
,DayVal
和TimeVal
等信息。
我想做的是,我想选择在特定日期和时间不使用的类,这是我的查询:
SELECT `Classes`.`ClassName`
FROM `FullSchedule`
RIGHT OUTER JOIN `Classes`
ON `FullSchedule`.`ClassName` = `Classes`.`ClassName`
WHERE `FullSchedule`.`DayVal` = '$day' AND `FullSchedule`.`TimeVal` = `$time`
结果是bing使用的类(公共类),尽管im使用
RIGHT OUTER JOIN
,即使我将其更改为:ON `FullSchedule`.`ClassName` != `Classes`.`ClassName`
它向我展示了所有的类,无论我如何更改它,它要么让我得到所有的类,要么只是正在使用的类。如何获取未使用的类?
最佳答案
试试这个:
SELECT `Classes`.`ClassName`
FROM `Classes`
WHERE Classes`.`ClassName` not in (
SELECT `FullSchedule`.`ClassName`
FROM `FullSchedule`
WHERE `FullSchedule`.`DayVal` = '$day' AND `FullSchedule`.`TimeVal` = `$time` )