我的数据库包含三个表product
,product_size
(变体)和handbook
。 Product
包含有关该产品的所有数据,handbook
知道我有哪个尺寸,product_size
包含有关手册中尺寸的产品的信息,并且还包含size_value
。< / p>
所以我需要在列product_size
中插入值,其中size_price将包含product的价格,handbook_id = 666而product_id是不具有产品大小的产品的ID。有没有办法做到这一点?
产品
id
price
name
Product_Size
id
product_id
handbook_id
size_price
手册
id
name
答案 0 :(得分:0)
所有产品都是产品表中的行。因此,尺寸可能不在手册中,也可能不在product_size表中。
gcc -Wall -Wextra -g
答案 1 :(得分:0)
您可以像这样填写插入内容:
insert into product_size (product_id, handbook_id, size_price)
select p.product_id, 666, p.price
from product p
where not exists (select 1
from product_size ps
where ps.product_id = p.product_id and ps.handbook_id = 666
);
注意:如果您尝试同时运行其中两个插入,则会产生意外结果。为了保护您的数据不受重复影响,您应该在product_size(product_id, handbook_id)
上拥有唯一的约束/索引。