【发布时间】:2017-03-09 14:39:09
【问题描述】:
上面是我想从中查询几个字段的数据库的部分数据图。 “tPlanningPeriodText”和“tSubPlanningPeriodText”表中的数据返回 NULL。我该如何解决?该表的链接(JOIN)是否没有“到达”它?
下面是查询: 附:这不是我的数据库,我只是想从中查询数据
SELECT T2.GlobalEmpCode "Global Employee Code", T2.EmpCode "Employee Code", T3.LastName "Last Name",
T3.FirstName "First Name", T3.LastName + ',' + T3.FirstName "Full Name", T1.CompletePercent "Completition (%)",
T5.Email, T9.Title "Program", T7.Title "Goal", T6.TargetUnitDesc "Unit", T11.Title "Position Title", T15.Code "Planning Period",
T17.Code "Sub-Planning Period"
FROM tEmployeePlan AS T1
LEFT JOIN tEmployee AS T2 ON T1.PID=T2.PID
LEFT JOIN tPerson AS T3 ON T2.PID=T3.PID
LEFT JOIN tIdentity AS T4 ON T3.PID=T4.PID
LEFT JOIN tUser AS T5 ON T4.UserID=T5.UserID
LEFT JOIN tGoal AS T6 ON T1.PID = T6.ProposalPID
LEFT JOIN tGoalText AS T7 ON T6.GoalID = T7.GoalTID
LEFT JOIN tProgram AS T8 ON T1.PgmID = T8.PgmID
LEFT JOIN tProgramText AS T9 ON T8.PgmID = T9.PgmID
LEFT JOIN tEmployeePlanPosition AS T10 ON T1.EmpPlanID = T10.EmpPlanID
LEFT JOIN tEmployeePlanPositionText AS T11 ON T10.EmpPlanID = T11.EmpPlanID
LEFT JOIN tGoalCatalogItem AS T12 ON T6.GoalID = T12.GoalID
LEFT JOIN tGoalCatalog AS T13 ON T12.GoalCatalogID = T13.GoalCatalogID
LEFT JOIN tPlanningPeriod AS T14 ON T13.PlanPerID = T14.PlanPerID
LEFT JOIN tPlanningPeriodText AS T15 ON T14.PlanPerID = T15.PlanPerID
LEFT JOIN tSubPlanningPeriod AS T16 ON T14.PlanPerID = T16.PlanPerID
LEFT JOIN tSubPlanningPeriodText AS T17 ON T16.SubPlanPerID = T17.SubPlanPerID
ORDER BY GlobalEmpCode;
【问题讨论】:
-
LEFT JOIN 通常会为右侧表返回一些 NULL。
-
我对一些 NULL 没问题,我什至希望它,问题是没有不包含 NULL 值的记录并且 table.column 确实有值
-
不看数据就很难回答。我会尝试选择 tEmployee,加入 tGoal,加入 tGoalCatalogItem,看看你是否得到了你所期望的。如果是这样,那么一次添加一个连接,直到您看到出现意外的空值。
-
@Ramollo 可能问题在于您加入
tGoal T6。您的图表未显示 tGoal 中的所有字段,但您确定要T6.ProposalPID? -
ProposalPID 是两个表关系中使用的字段。
标签: sql join left-join inner-join union-all