すべてで販売されているかどうかに関係なく、すべての製品を一覧表示する「マスター」製品テーブルを用意することをお勧めします。 サイト、または1つだけ。次に、そこから各Webサイトの価格表に参加します。製品名を照合してみてください。最も単純な形式では、クエリは次のようになります。
select
p.*,
t1.price as site1_price,
t2.price as site2_price,
t3.price as site3_price
from product p
left join website1 t1 on t1.name = p.name
left join website2 t2 on t2.name = p.name
left join website2 t3 on t3.name = p.name;
ブランドとモデルで参加する必要がある場合があります。つまり、 on t1.brand=p.brandおよびt1.model=p.model
、または名前が一意でない場合は他の基準。
製品を販売していない場合、サイトの価格は無効になります。
製品にすばやくデータを入力するには、次のコマンドを実行します:
insert into product (name, brand, model, ...)
select name, brand, model, ... from website1
union
select name, brand, model, ... from website2
union
select name, brand, model, ... from website3;
参考までに、<code> UNIONの使用 ( UNION ALL
ではなく )ユニオンの出力が一意の行のみを生成するようにします