首页 > 解决方案 > MySQL从表A和表B插入表C

问题描述

我有 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循环的脚本才能做到这一点。

标签: mysqlsql

解决方案


使用INSERT INTO ... SELECT带有交叉连接的 an:

INSERT INTO C (ID, config, Value)
SELECT a.ID, b.config, 'True'
FROM A a
INNER JOIN B b

MySQL 中没有子句的内部连接ON默认为交叉连接,尽管我们也可以使用CROSS JOIN.


推荐阅读