MySQL从表A和表B插入表C

时间:2018-07-12 00:57:52

标签: mysql sql

我有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 循环的脚本来完成此操作。

1 个答案:

答案 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