2012-05-12 161 views
1

我試圖找出將兩個查詢加入到一個查詢中。或者如果我應該或需要。通過MySQL加入兩個SELECT查詢

我有這個...

SELECT  
    cd.SalesRep_ID AS CustomersSalesRep_ID 
    FROM `CustomerDetails` cd 
    WHERE cd.Customer_ID = $Customer_ID 

這工作正常,並給了我「SalesRep_ID」我要找的。

但我需要的是「SalesRep_ID」像這樣的一個查詢...

SELECT  
    cd.IsSalesRep, cd.RepCom, cd.SalesRep_ID, sr.RepDispName, sr.DefaultRepCom 

    FROM `CustomerDetails` cd 
    LEFT JOIN `SalesReps` sr 
    ON cd.SalesRep_ID = sr.SalesRep_ID 
    WHERE cd.Customer_ID = $Customer_ID 
    AND sr.SalesRep_ID = $CustomersSalesRep_ID 

使用這兩種生產我正在尋找的結果。但是,他們可以聯合在一起,還是他們會這樣做?

+2

第一個查詢已被合併入第二...我很困惑。您從第二個查詢中收到的輸出有什麼問題? – eggyal

+0

什麼都沒有。我得到了我期待的結果。我想知道他們可以加入到一個查詢中。 – Monty

回答

2

如果我理解正確的話,這是你追求的:

SELECT cd.SalesRep_ID AS CustomersSalesRep_ID, 
     cd.IsSalesRep, 
     cd.RepCom, 
     cd.SalesRep_ID, 
     sr.RepDispName, 
     sr.DefaultRepCom 
FROM CustomerDetails AS cd LEFT JOIN SalesReps AS sr USING(SalesRep_ID) 
WHERE cd.Customer_ID = $Customer_ID 
+0

是的。這正是我正在尋找的,謝謝。 USING是我錯過的。 – Monty

+0

@Monty:其實,沒有。將'cd.SalesRep_ID'添加到您'SELECT'的列中是有所作爲的。我比'ON'更喜歡'USING',因爲它更簡潔,並且從結果的'JOIN'中消除了相同列的一個版本,從而避免了惱人的「模棱兩可的列」錯誤:它實際上並沒有改變你的在這種情況下的問題。 – eggyal