Saya sarankan Anda memiliki tabel produk "master", yang mencantumkan semua produk, terlepas dari apakah produk tersebut dijual di semua situs, atau hanya satu. Kemudian gabungkan dari itu ke masing-masing tabel harga situs web. Coba cocokkan pada nama produk. Dalam bentuknya yang paling sederhana, kueri akan terlihat seperti:
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;
Anda mungkin harus mencoba bergabung dengan merek dan model, yaitu on t1.brand = p.brand and t1.model = p.model
, atau beberapa kriteria lain jika nama tidak unik.
harga situs akan menjadi nol jika mereka tidak menjual produk.
Untuk mengisi produk dengan cepat, Anda dapat menjalankan ini:
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;
FYI, penggunaan UNION
(bukan UNION ALL
) membuat output dari gabungan hanya menghasilkan baris unik