2013-07-10 53 views
1

即時連接試圖根據2個值獲取2個表加入。繼承人的表:msql根據2個值連接2個表

聯繫人 VLG debnr名稱等

orderheaders VLG debnr ORDERNUMBER等

VLG是與訂單相關聯的contactperson數。 Debnr是與訂單相關聯的公司的編號。我只發佈訂單號,需要在訂單表中找到debnr和vlg,然後找到聯繫人的名稱。我認爲這可以通過INNER JOIN完成,但由於我在JOIN方面缺乏經驗,所以無法實現。

繼承人我試過但不會工作,我知道它不會因爲我甚至沒有檢查vlg,但我不知道如何加入基於2值。誰能幫我?:

SELECT *, orderheaders.ordernummer, orderheaders.vlg 
FROM contacts 
INNER JOIN contacts on(orderheaders.debnr = contacts.debnr) 
WHERE orderheaders.ordernummer = 'some_order_number'; 
+1

'orderheaders'是不是你的'FROM'子句。 –

+1

您現在正在使用已發佈的'ordernumber',但您將其與'debnr'進行比較。這可能會導致錯誤的結果或根本沒有結果。另外,你在'contacts'上加入了'contacts',而我認爲你應該在'orderheaders'上加入'contacts'。 – GolezTrol

+1

請注意我刪除了似乎與您的問題無關的PHP代碼。看看現在的語法高亮工具:) :) – RandomSeed

回答

2
SELECT * 
FROM contacts 
INNER JOIN orderheaders ON (
    orderheaders.debnr = contacts.debnr 
    AND orderheaders.vlg = contacts.vlg 
) 

或者,由於該領域的兩個表中具有相同的名稱:

... INNER JOIN orderheaders USING (debnr, vlg) 
+0

太好了,非常感謝!我接近,然後我想。這使我對JOIN函數有了更多的瞭解。 – Snuur