我有两个表,一个称为Classes,其中包含ClassName,另一个称为FullSchedule,其中包含ClassNameDayValTimeVal等信息。
我想做的是,我想选择在特定日期和时间不使用的类,这是我的查询:

    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` )

10-01 12:25