【发布时间】:2014-11-04 14:33:49
【问题描述】:
使用这个question,我一直在尝试使用不同类型的 JOINS 来尝试组合这两个 SELECT 查询。它们非常相似并且可以自己正常工作,但是当我尝试创建第三列 EmpFirstName3 时,查询会爆炸。如何成功合并这两个表?
HTG_TechProps 表
EmpNumber | EmpFirstName
111 | Bob
222 | John
333 | Randy
HTG_TechStaffSets 表
EmpNumber | StaffSetID
CCN31 | 111
CCN11 | 222
POWW | Null
/* Techs */
SELECT
p.EmpNumber,
p.EmpFirstName AS EmpFirstName1,
t.EmpFirstName AS EmpFirstName2
FROM HTG_TechProps p
LEFT JOIN HTG_TechStaffSets s ON p.EmpNumber=s.EmpNumber
LEFT JOIN HTG_TechProps t ON t.EmpNumber=s.StaffSetID
ORDER BY p.EmpNumber
/* Staff Sets */
SELECT
p.EmpNumber,
p.EmpFirstName AS EmpFirstName1,
t.EmpFirstName AS EmpFirstName2
FROM HTG_TechProps p
LEFT JOIN HTG_TechStaffSets s ON p.EmpNumber=s.StaffSetID
LEFT JOIN HTG_TechProps t ON t.EmpNumber=s.EmpNumber
ORDER BY p.EmpNumber
【问题讨论】:
-
我根据在 Stack 上找到的问题进行了尝试,但我显然是在搞砸。你能冒险一个样品吗@ItalianStallion
-
我完全迷路了。您将 techProps 加入到 empNumber 上的员工集,但从您的样本数据来看,两个表之间的 empNumber 并不相同。然后你加入empnumber和staffsetid。
-
我知道,它完全被抬高了。我无法控制桌子。在某些情况下,StaffSetID 与 EmpNumber 匹配,而在某些情况下则不匹配……这足以让我发疯 LOL