2013-07-10 37 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