我有3张桌子。
A:
----
ID |
----
1 |
---
2 |
---
3 |
---
B:
--------
config |
--------
paid |
-----------
dispatch |
-----------
delivered |
我想要的是在表C中插入值,即表A *表B中的所有值。
那么C应该是
C:
-------------------
A.ID | B.config | Value
-------------------
1 | paid | True
2 | paid | True
3 | paid | True
1 | dispatch | True
2 | dispatch | True
3 | dispatch | True
1 | delivered | True
2 | delivered | True
3 | delivered | True
现在的问题是,我可以使用Single Mysql语句执行此操作吗,还是必须编写带有嵌套 for 循环的脚本来完成此操作。
答案 0 :(得分:5)
对交叉连接使用INSERT INTO ... SELECT
:
INSERT INTO C (ID, config, Value)
SELECT a.ID, b.config, 'True'
FROM A a
INNER JOIN B b
MySQL中没有ON
子句的内部联接默认为交叉联接,尽管我们也可以使用CROSS JOIN
。