我有3张桌子:
1 - tblMembers_Info
2 - 接合台
3 - tblCourses
我需要查询尚未完成特定课程的成员。
尝试手动完成后,我尝试了MS Access“查询向导”。我最终得到了:
保存的查询为Query1: //那个做过课程的查询
SELECT tblMembers_Info.*, tblCourses.CourseName
FROM tblMembers_Info
INNER JOIN
(tblCourses INNER JOIN tblMembers_Courses
ON tblCourses.IDCourses = tblMembers_Courses.IDCourses)
ON tblMembers_Info.Members_ID = tblMembers_Courses.Members_ID
WHERE (tblCourses.CourseName) In ('NameOftheCourse');
使用保存的Query1进行第二次查询:
SELECT tblMembers_Info.Members_ID, tblMembers_Info.FirstName, tblMembers_Info.LastName
FROM tblMembers_Info
LEFT JOIN [Query1]
ON tblMembers_Info.[Members_ID] = Query1.[Members_ID]
WHERE (((Query1.Members_ID) Is Null));
如何使用完整查询替换第二个查询中的Query1而不是使用QueryDef(保存的查询“Query1”)?
此外,有一种更好的方法可以确保编写该查询,我真的很感激任何帮助。
答案 0 :(得分:2)
您只需将function init() {
img = new Image();
img.crossOrigin = "Anonymous";
img.src = "test.png";
}
替换为LEFT JOIN [Query1]
,其中LEFT JOIN (...) AS [Query1]
应该是第一个查询的SQL,而不是结尾...
。
但我认为在您的具体情况下,使用;
可能会提供更好的效果,以获得相同的结果:
NOT IN