Я ищу лучший способ справиться со следующей проблемой.
custData
--------
ID | Code
1 | A
2 | B
prodData
--------
ID | ProdID
1 | prodA
2 | prodB
3 | prodC
, и я хотел бы сохранить запись в этой таблице:
custProdPrice
--------
ID | Cust | Prod
1 | A | prodA
2 | A | prodB
3 | A | prodC
4 | B | prodA
5 | B | prodB
6 | B | prodC
я ее получалсделано с помощью следующего запроса
create view CashPOSDB.viewertable as select Code, ProdID as pid, BelongTo
from CashPOSDB.custData cross join CashPOSDB.prodData
AND
insert into CashPOSDB.custProdPrice(Cust, Prod, BelongTo)(select Code, Pid, BelongTo from
(select Code, pid, belongTo from CashPOSDB.viewertable UNION ALL
select Cust, Prod, BelongTo from CashPOSDB.custProdPrice) t group by Code, Pid);
Он выполняет свою работу, но иногда кажется, что он пропускает какой-то результат или вставляет повторяющиеся строки.
Кроме того, я хотел бы проверить это так, чтобыкогда я вставляю новый Prod prodD
, он проверяет custProdPrice
и проверяет, есть ли в Cust A и B строка
A | prodD
b | prodD
, и вставляет его, если он не существует.
Итак, как лучше всего это оптимизировать?