2014-02-08 48 views
1

我當前的查詢:從單獨的表再回到名稱,而不是ID爲兩列查詢

SELECT CONCAT(emp.firstName, ' ', emp.lastName), gear.gearCata 
FROM gear_search as gear 
LEFT OUTER JOIN employee as emp ON gear.PrimarySalesid = emp.salesid 
WHERE gear.CompanyName = 'rty'; 

我要的是結果,列出主要和次要銷售人員的姓氏和名字,而不是自己的ID的,次要的必須顯示空結果爲空,所以我可以看到它們排列在哪裏。

So like this 
PrimarySales Name | GearCatagory | Secondary Name 
Bill Jones   Climbing   NULL 
Terry Anderson  Running   Bill Jones 

... and so on 

基本上,gear_search表沒有銷售人民名字只是他們的一次和二次銷售ID對每個交易。我必須使用員工表來獲取他們的真實姓名。

我知道我可以做到這一點:

SELECT CONCAT(emp.firstName, ' ', emp.lastName), gear.gearCata, gear.SecondarySalesid 
FROM gear_search as gear 
LEFT OUTER JOIN employee as emp ON gear.PrimarySalesid = emp.salesid 
WHERE gear.CompanyName = 'rty'; 

但這將只是顯示他們Secondarysalesid沒有他們的名字。

我已經嘗試再次在Secondarysalesid上再次加入員工,並再次使用CONCAT,但它不會與主要人員正確對齊。我需要看看哪些交易只有小學,然後(小學和中學)

任何意見將不勝感激。

回答

1

只需再次加入員工:

SELECT DISTINCT 
    CONCAT(emp.firstName, ' ', emp.lastName) PrimaryName, 
    gear.gearCata, 
    CONCAT(emp2.firstName, ' ', emp2.lastName) SecondaryName 
FROM gear_search as gear 
LEFT JOIN employee emp ON gear.PrimarySalesid = emp.salesid 
LEFT JOIN employee emp2 ON gear.SecondarySalesid = emp2.salesid 
WHERE gear.CompanyName = 'rty' 
+0

這實際上並不適用於我們的生產數據庫,當gear_search表只有160行並且員工只有320行時,它返回了20000個結果。感謝幫助不少於... –

+0

@trail_runner嘗試添加DISTINCT - 請參閱編輯的答案。另外,你確定你正確地複製了連接條件嗎?我推薦複製粘貼,因爲如果你錯誤地輸錯了一個字符,比如'emp'而不是'emp2',你可能會得到瘋狂的結果 – Bohemian

+0

仍然不能正常工作?現在發生了什麼?也許顯示一些示例數據,這樣我們就有了一些代碼。 – Bohemian

0

建議你加入「僱員」到「gear_search」兩次,這樣的事情(藉口不使用LEFT JOIN老派的語法,這就是我比較熟悉:

SELECT CONCAT(emp1.firstName , '',emp1.lastName) gear.gearCata, CONCAT(emp2.​​firstName, '',emp2.​​lastName) FROM gear_search如齒輪, 僱員如EMP1, 僱員如EMP2 WHERE gear.CompanyName = 'rty' AND gear.PrimarySalesid = emp1.salesid and gear.SecondarySalesid = emp2.​​salesid

雖然你的文章說你嘗試過這樣的事情,但是不清楚在查詢中是否有「員工」兩次。所以我可能在這裏通過你自己的手錶告訴你時間。

+0

「老派」?就像他們用石板和鑿子一樣? 'JOIN'已經超過20年的SQL語言!在這裏的許多用戶出生之前...獲取與程序(明)! – Bohemian

+0

是的,那些在sql92之前的好日子....實際上我的示例代碼不正確,因爲我的連接不是外連接。 「連接同一張桌子兩次」的技巧值得記住。 – Angst

相關問題