我不确定标题是否与问题相关,但我没有找到更好的问题。 这里的问题 - 我有4个表,让我们说:Oracle右键加入3个表格,但只能匹配1
产品(ID,PRODUCT_NAME),
priceA(产品,价格),
priceB(产品,价格),
priceC(产品,价格) 。
什么,我需要做的是写一个选择,这将只显示我有价格的产品在priceA或priceB或priceC或以A,B的任意组合,C
我怎么能这样做?谢谢!
我不确定标题是否与问题相关,但我没有找到更好的问题。 这里的问题 - 我有4个表,让我们说:Oracle右键加入3个表格,但只能匹配1
产品(ID,PRODUCT_NAME),
priceA(产品,价格),
priceB(产品,价格),
priceC(产品,价格) 。
什么,我需要做的是写一个选择,这将只显示我有价格的产品在priceA或priceB或priceC或以A,B的任意组合,C
我怎么能这样做?谢谢!
您是否尝试过这样的事情:
select p.id,
p.name,
a.price Price_A,
b.price Price_B,
c.price Price_C
from products p
left join pricea a
on p.id = a.product_id
left join priceb b
on p.id = b.product_id
left join pricec c
on p.id = c.product_id
where a.price is not null
or b.price is not null
or c.price is not null
你可以尝试使用UNION的结果结合起来:
select p.id,
p.name,
a.price
FROM products p INNER JOIN pricea a ON p.id = a.product_id
UNION
select p.id,
p.name,
b.price
FROM products p INNER JOIN priceb b ON p.id = b.product_id
UNION
select p.id,
p.name,
c.price
FROM products p INNER JOIN pricec c ON p.id = c.product_id
见SQLFiddle:http://sqlfiddle.com/#!4/85519/15
没关系,但我只需要一行产品例如2 product2 25 NULL 3 – maephisto
大!我认为这会做到这一点!谢谢! – maephisto