我有这样的相关产品表:
product_id | related_product_id
1 | 2
1 | 3
1 | 4
2 | 1
3 | 1
4 | 1
但我希望插入新的相关产品ID,以便它们全部匹配。 I.E.如果产品1有2,3,4我不会产品2,3,4也有相同的相关ID缺失。
不确定它是如何调用的,但这可能吗?非常感谢。
答案 0 :(得分:0)
您可以尝试此查询(未经测试,先进行备份!):
insert into related_products (product_id,related_product_id) (select related_product_id, product_id from related products);
答案 1 :(得分:0)
我建议用户使用双向条件来获取相关产品。例如,如果您对单列product_id应用条件,则不会得到反之亦然的结果。但是,如果您在两个列上检查该条件,您将得到结果。
例如:
select related_product_id, product_id from products where related_product_id=1 OR product_id=1
这将在related_product_id或product_id中提供您的相关产品ID。
同样可以获得产品2,即
select related_product_id, product_id from products where related_product_id=2 OR product_id=2
这将在related_product_id或product_id中提供您的所有相关产品ID。
答案 2 :(得分:0)
您可以使用SELECT
查询作为INSERT
INSERT INTO related_products (product_id, related_product_id)
SELECT r1.product_id, r2.related_product_id
FROM related_products AS r1
CROSS JOIN related_products AS r2
WHERE r1.product_id != 1
AND r2.product_id = 1
此联接将获取产品1的所有相关产品,并将它们与所有其他产品ID相结合。