0

タイトルが質問に関連しているかどうかはわかりませんが、より良いものは見つかりませんでした。ここに問題があります-私は4つのテーブルを持っています、としましょう:

products(id、product_name)、
priceA(product_id、price)、
priceB(product_id、price)、
priceC(product_id、price)。

私がする必要があるのは、priceA、priceB、priceC、またはa、b、cの任意の組み合わせの価格を持つ製品のみを表示する選択を作成することです。

どうすればこれを行うことができますか?ありがとうございました!

4

2 に答える 2

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

于 2012-11-01T10:49:35.540 に答える
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 FiddlewithDemoを参照してください

于 2012-11-01T10:35:40.867 に答える