大家好我正在尝试从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
答案 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
值的行,您将获得所需的内容。
希望这有帮助。