MS Access 2013中的嵌套SQL连接

时间:2015-12-28 05:18:58

标签: sql ms-access join nested

我对数据进行了规范化,并尝试在多个表中显示数据。我对SQL很新,所以请耐心等待。

我要做的是显示尚未分配给项目的任务,但包含来自各种表的数据,例如项目标题,公司等(使用LEFT JOIN和WHERE子句)。< / p>

有效的原始代码:

SELECT Tasks.ID, Projects_Tasks.ProjectID
FROM Tasks LEFT JOIN Projects_Tasks ON Projects_Tasks.TaskID = Tasks.ID
WHERE Projects_Tasks.ProjectID IS NULL;

嵌套连接代码(不起作用):

SELECT Tasks.ID, Projects.ProjectTitle, ProjectManagers.FirstName, ProjectManagers.LastName, Companies.Company
FROM ((((Tasks
LEFT JOIN Projects_Tasks ON Projects_Tasks.TaskID = Tasks.ID)
INNER JOIN Projects_Tasks ON Projects_Tasks.ID = Projects.ID)
INNER JOIN Projects ON Projects.ID = Projects_Tasks.ProjectID)
INNER JOIN ProjectManagers ON ProjectManagers.ID = Projects.ProjectManagerID)
INNER JOIN Companies ON Companies.ID = ProjectManagers.CompanyID
WHERE Projects_Tasks.ProjectID IS NULL;

我尝试了很多种组合,但我无法让它发挥作用。我已经尝试颠倒我的嵌套连接的顺序(如果它从下到上执行)我已经三次

1 个答案:

答案 0 :(得分:0)

我不喜欢编写SQL语句。虽然Access的优点是它可以在查询中为您创建SQL语句

使用查询生成器:

  • 选择表项Project_Tasks&amp; Project_Managers&amp;所有其他表格 你想要显示数据
  • 选择您要显示的所有相关数据字段
  • 您拥有&#39; ProjectID&#39;字段,Criteria部分需要&#34; Is Null&#34; (尽管不要加上引号)

然后,保存查询并运行它。 (您可以只使用该查询,或以其他方式删除SQL语句)

祝你好运!