2014-09-10 73 views
0

使用此question,我一直試圖使用不同類型的JOINS嘗試組合這兩個SELECT查詢。他們非常相似,並且自行工作良好,但是當我嘗試創建第三列EmpFirstName3時,查詢就會出現。我如何成功結合這兩個表?使用JOIN在MySQL中創建第三列的類似查詢使用JOIN

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 
+0

我試過基於我在堆棧上發現的問題,但我明顯地把它弄糊塗了。你可以創建一個樣本請@ItalianStallion – 2014-09-10 20:02:23

+0

我完全失去了。您將techProps加入empNumber的Staff集合,但是您的示例數據empNumber在兩個表之間並不相同。然後你加入empnumber和staffsetid。 – SQLChao 2014-09-10 20:09:35

+0

我知道,它完全頂起來了。我無法控制桌子。在某些情況下,StaffSetID與EmpNumber匹配,在某些情況下,它不會......這足以讓我瘋狂LOL – 2014-09-10 20:13:03

回答

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 
+0

哦,夥計,談論我複雜化的事情......我正在嘗試INNER JOINS和UNION進行查詢。謝謝SOOOO! – 2014-09-10 20:07:01

+0

不客氣! – ericpap 2014-09-10 20:23:56