【发布时间】: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的表你也加入了.. -
请详细说明“不起作用”。您的最后一句话似乎也缺少一些东西。