此设置适用于一个债务人的多个地址。我的订单表中有两个债务人字段。 debiteur_id为"默认"来自债务人表的价值。如果我们为同一个债务人选择另一个地址,则debiteur_id为空,aditional_id用来自aditional_debiteur的值与债务人相关联。我希望有人得到它。
我的桌子:
Order
id debiteur_id amount aditional_id
1 null 2 1
2 1 3 null
3 2 1 null
debtor
id name hnr place
1 myname 10 london
2 companyName 4 Enschede
Aditional_debiteur
id debiteur_id hnr place
1 1 22 amsterdam
我想要的是将所有订单链接(直接或inderict)到debtor表中的id。这是因为订单来自同一家公司只有另一个地址。 如果我选择ID为1的debor,我会收到此订单结果:
order_id name amount
1 myname 2
2 myname 3
debtor id 2的另一个结果:
order_id name amount
3 companyName 1
我有这个问题:
SELECT * FROM `Order` WHERE `debiteur_id` = '1' ORDER BY `id` ASC
这会返回默认债务人地址的结果,我想用aditional_id检索其他订单(也与debituer_id链接到债务人)。
长话短说。我想从债务人表中使用特定债务人从订单表中检索所有订单。
答案 0 :(得分:2)
SELECT
o.id AS order_id
,d.name
,o.amount
,IFNULL(ad.hnr,d.hnr) AS hnr
FROM
`Order` o
LEFT JOIN Additional_debiteur ad
ON o.aditional_id = ad.id
AND ad.debiteur_id = 1
INNER JOIN debtor d
ON IFNULL(o.debiteur_id,ad.debiteur_id) = d.id
WHERE
o.debiteur_id = 1
OR ad.id IS NOT NULL
ORDER BY
o.id ASC
这是一种方法。
答案 1 :(得分:0)
你只想要domain
吗?
OR
注意:如果id是数字,则不应对值使用单引号。我假设ids实际上是数字的。