表中的变量在另一个表中不存在

时间:2015-02-11 00:23:23

标签: mysql

大家好我正在尝试从mysql中的第二个表中不存在的一个表中获取变量,例如我有这个代码

SELECT students.`StudentID`
From students
JOIN studentsdays ON studentsdays.`StudentID`=students.`StudentID`
JOIN studentshours ON studentshours.`StudentID`=students.`StudentID`
JOIN studentclassroom ON studentclassroom.`StudentID`=students.`StudentID`
JOIN attendance ON attendance.`StudentID` = students.`StudentID`
WHERE dayID='14mon' and hoursid='ora2' and ClassRoomID=101 and CourseID =1111

显示下表

StudentID
----------
 11111
----------
 22222
----------
 33333   

第二个代码

SELECT user_id FROM demo_log

显示下表

user_id
----------
 11111
----------
 22222

我如何将这些代码放在一起以获得一个只有第一个表上的值的表,给出一个像这样的表

StudentID
----------
 33333   

1 个答案:

答案 0 :(得分:0)

考虑使用LEFT JOIN

select a.*
from (
    -- Your first (big) query
    select ...
    ) as a 
    left join demo_log as b on a.user_id = b.student_id
where b.user_id is null
-- add any other where conditions you need

LEFT JOIN将匹配第一个查询中的所有行和demo_log表的行;对于每个不匹配的行,将存在与NULL列对应的demo_log值。如果您选择具有NULL值的行,您将获得所需的内容。

希望这有帮助。