2012-11-01 99 views
0

我不確定標題是否與問題相關,但我沒有找到更好的問題。 這裏的問題 - 我有4個表,讓我們說:Oracle右鍵加入3個表格,但只能匹配1

產品(ID,PRODUCT_NAME),
priceA(產品,價格),
priceB(產品,價格),
priceC(產品,價格) 。

什麼,我需要做的是寫一個選擇,這將只顯示我有價格的產品在priceA或priceB或priceC或以A,B的任意組合,C

我怎麼能這樣做?謝謝!

回答

2

您是否嘗試過這樣的事情:

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 

SQL Fiddle with Demo

+0

大!我認爲這會做到這一點!謝謝! – maephisto

3

你可以嘗試使用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

+0

沒關係,但我只需要一行產品例如2 product2 25 NULL 3 – maephisto