【问题标题】:Similar queries to create third column in MySQL using JOIN使用 JOIN 在 MySQL 中创建第三列的类似查询
【发布时间】: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

标签: mysql sql


【解决方案1】:

试试这个:

    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

UNION ALL

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

【讨论】:

  • 哦,伙计,谈论我让事情变得复杂......我正在尝试使用查询的 INNER JOINS 和 UNIONS。非常感谢!
猜你喜欢
  • 2021-11-20
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-16
  • 1970-01-01
  • 1970-01-01
  • 2018-05-12
相关资源
最近更新 更多