gpt4 book ai didi

sql - 根据MySql 5中表 'A'的内容,INSERT 0..n条记录到表 'B'

转载 作者:行者123 更新时间:2023-11-29 01:47:33 26 4
gpt4 key购买 nike

使用 MySql 5,我有一项任务需要根据另一个表的内容更新一个表。

例如,如果表“B”包含“B1”,我需要将“A1”添加到表“A”。如果表“B”包含“B2”等,我需要将“A2a”和“A2b”添加到表“A”中。在我们的例子中,我们感兴趣的表“B”中的值是一个枚举。

现在我有一个包含一系列语句的存储过程,例如:

INSERT INTO A
SELECT 'A1'
FROM B
WHERE B.Value = 'B1';
--Repeat for 'B2' -> 'A2a'; 'B2' -> 'A2b'; 'B3' -> 'A3', etc...

有没有更好更 DRY 的方法来完成这个?

编辑:表“B”中的值可能与表“A”没有等效值。

编辑:示例

给定表 B

+-------+
| Value |
+-------+
| B1 |
| B1 |
| B2 |
| B3 |
| FOO |
+-------+

期待表A

+-------+
| Value |
+-------+
| A1 |
| A2a |
| A2b |
| A3 |
+-------+

最佳答案

您可以考虑创建一个包含您想要的测试/结果组合的表格,例如:

TABLE Tests

Test | Result
----------------
B1 | A1
B2 | A2a
B2 | A2b
B3 | A3

然后您可以将此表内部连接到 TABLE_B 并读出结果列以确定要插入到 TABLE_A 中的值:

INSERT INTO TABLE_A
SELECT DISTINCT TABLE_B.Result
FROM TESTS, TABLE_B
WHERE TABLE_B.Value = TESTS.Test

关于sql - 根据MySql 5中表 'A'的内容,INSERT 0..n条记录到表 'B',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2959924/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com