我目前有两个表,它们没有任何共同点,我想从两个表中获取数据并将其插入到第三个表中。
表A
CustomerId | CustomerName | PhoneNumber
表B
ProductId | ProductName | priceA | PriceB | PriceC
表C
id | customerID | productID
现在的问题是,每当我插入一个新产品(表 B)时,我想将它分配给每个客户(表 A)
让我们说
表A
c1 | aa | 1234 c2 | bb | 3456 c3 | cc | 3123
和表B
p1 | candy | 1.1 | 1.2 | 1.3 p2 | bag | 5.5 | 5.6 | 5.7 p3 | key | 3.3 | 3.1 | 3.5
我希望将每个客户分配给所有产品,如下所示:
表C
1 | c1 | p1 2 | c1 | p2 3 | c1 | p3 4 | c2 | p1 5 | c2 | p2 6 | c2 | p3 7 | c3 | p1 8 | c3 | p2 9 | c3 | p3
请问我应该如何做这件事有什么建议吗?我最初的想法是使用 JOIN,但是没有任何共同点可以加入,有没有更好更快的方法来做到这一点?
最佳答案
上述场景非常适合交叉连接。
现在下面的查询行将选择要插入到表 C 中的所需结果集。
SELECT A.customer_id, B.product_id
FROM A
CROSS JOIN B
插入上面查询得到的结果集即可:
INSERT INTO C
SELECT A.customer_id, B.product_id
FROM A
CROSS JOIN B
关于mysql - 从多个表中插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57744153/