【问题标题】:Nested SQL Joins in MS Access 2013MS Access 2013 中的嵌套 SQL 联接
【发布时间】:2015-12-28 05:18:57
【问题描述】:

我对数据进行了规范化,并一直在尝试跨多个表显示数据。我对 SQL 还很陌生,所以请多多包涵。

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

有效的原始代码:

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;

我尝试了很多组合,但我就是无法让它发挥作用。我试过颠倒我的嵌套连接的顺序(以防它从下到上执行),我试过了

【问题讨论】:

  • 我问你为什么要嵌套这些连接?
  • 看起来你加入Projects_Tasks的表你也加入了..
  • 请详细说明“不起作用”。您的最后一句话似乎也缺少一些东西。

标签: sql ms-access join nested


【解决方案1】:

我不喜欢编写 SQL 语句。不过,Access 的好处是它可以在查询中为您生成 SQL 语句

使用查询生成器:

  • 选择表 Project_Tasks & Project_Managers & 所有其他表 你想显示数据
  • 选择您要显示的所有相关数据字段
  • 在您有“ProjectID”字段的地方,Criteria 部分需要有“Is Null”(但不要加引号)

然后,保存查询并运行它。 (您可能只使用该查询,或者删除 SQL 语句)

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 2016-01-18
    • 2013-08-15
    • 2014-04-17
    相关资源
    最近更新 更多