使用JOIN在MySQL中创建第三列的类似查询
使用这个,我一直在尝试使用不同类型的连接来组合这两个SELECT查询。它们非常相似,各自工作也很好,但当我试图创建第三列EmpFirstName3时,查询失败了。如何成功地组合这两个表 HTG_TechProps表 HTG_技术人员设置表使用JOIN在MySQL中创建第三列的类似查询,mysql,sql,Mysql,Sql,使用这个,我一直在尝试使用不同类型的连接来组合这两个SELECT查询。它们非常相似,各自工作也很好,但当我试图创建第三列EmpFirstName3时,查询失败了。如何成功地组合这两个表 HTG_TechProps表 HTG_技术人员设置表 试试这个: SELECT p.EmpNumber, p.EmpFirstName AS EmpFirstName1, t.EmpFirstName AS EmpFirstName2
试试这个:
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
我根据在Stack上找到的问题尝试了这个方法,但我显然是搞错了。你能冒昧给我一个样品吗?我完全迷路了。您将techProps连接到EMPNAME上的人员集,但从样本数据来看,两个表之间的EMPNAME不相同。然后你加入EMPNAME和staffsetid。我知道,它完全被抬高了。我无法控制桌子。在某些情况下,StaffSetID与EmpNumber匹配,而在某些情况下,它与EmpNumber不匹配……这足以让我发疯了,LOLOh,伙计,谈论我的复杂化……我在尝试内部连接和联合查询。非常感谢!
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
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