sql - 将一张表中的数据合并到第二张表中
问题描述
问题: 我有两个表,Table1 有 3 列 [CODE]、[CAT]、[GROUP],基于第 2 列和第 3 列中的值,我想在 Table2 中创建条目。
Table2 有 2 列 [CODE] 和 [ALTERNATECODE] - 另请注意 Table2 在开始时没有数据。
对于 Table1 中的每个条目(仅当有超过 1 个匹配条目时)我想在 table2 中为每个匹配的情况创建一个条目,table2.CODE = table1.code,并且 Table2.alternatecode = Table1.code 匹配条目(条目)。匹配在table1.CAT 和Table1.GROUP 上完成,所有匹配的条目必须在Table2 中具有所有其他匹配条目作为ALTERNATECODES。
SQL:
数据 - 表 1:
28644 138 10
27817 138 10
8019 138 11
8018 138 11
21044 138 12
20985 138 12
20986 138 12
10166 138 12
10165 138 12
8056 138 15
11611 139 1
21999 139 1
27497 139 1
11612 139 2
30245 139 3
84409 139 4
26023 139 4
22000 139 5
更新后 - 数据表 2:
28644 27817
27817 28644
8019 8018
8018 8019
21044 20985
21044 20986
21044 10166
21044 10165
20985 21044
20985 20986
20985 10166
20985 10165
20986 21044
20986 20985
20986 10166
20986 10165
10166 21044
10166 20985
10166 20986
10166 10165
10165 21044
10165 20985
10165 20986
10165 10166
11611 21999
11611 27497
21999 11611
21999 27497
27497 21999
27497 11611
84409 26023
26023 84409
所以基本上是匹配标准的结果。Table1 中的 1 个条目意味着 table2 中的 0 个条目,Table1 中的 2 个条目意味着我们在 table2 中有 2 个条目 Table1 中的 3 个条目意味着我们在 table2 中有 6 个条目
解决方案
我希望我理解正确。听起来您想要使用不相等的代码自行加入类别和组。
INSERT INTO table2
(code,
alternatecode)
SELECT t11.code,
t12.code
FROM table1 t11
INNER JOIN table1 t12
ON t12.cat = t11.cat
AND t12.group = t11.group
AND t12.code <> t11.code;
推荐阅读
- javascript - 进行图像直通,这样它就不会阻止交互
- javascript - 如何使用 Redux 过滤数据但保持旧状态?
- php - Laravel 服务提供者 - 使用多种配置
- java - 如何发布和使用依赖本地项目的 gradle 插件?
- spring - 在 Spring 中运行集成测试时出现 CommandAcceptanceException
- spring - 如何添加新角色?
- ios - 使用 Swift 4 关闭 WKWebView 并更改 ViewController
- datetime - xarray:替换日期时间中特定日期对应的数组值
- bixby - 如果未在 bixby 中提供城市名称,geo.NamedPoint 将占据当前位置
- nginx - 如何使用 NGINX 避免“过多的重定向”