SQL - 插入两列,一列来自表,另一列是常量

Posted

技术标签:

【中文标题】SQL - 插入两列,一列来自表,另一列是常量【英文标题】:SQL - Insert two columns, one from a table, the other constant 【发布时间】:2019-05-17 19:28:14 【问题描述】:

我有一个多对多关系表,我需要在其中插入行。

假设标题是:

Table1: Id_1 | Etc....
Table2: Id_2 | Etc....
Relation_Table: Id_1 | Id_2 | Etc.

我需要做以下事情:

在表 1 中插入一个新元素 将此新元素链接到表 2 中的所有元素

所以,我需要在关系表中添加n行如下:

(id_1_new, id_2_0),
(id_1_new, id_2_1),
(id_1_new, id_2_2),
(id_1_new, id_2_3),
(id_1_new, id_2_4),
(id_1_new, id_2_5),
(id_1_new, id_2_6),....
id_1_new 是已知的,可以手动输入 而id_2_n 可能来自select Id_2 from Table2

如何使用 SQL 语句做到这一点? Microsoft Access 解决方案也受到欢迎。

【问题讨论】:

“新元素”是什么意思——新字段还是新记录?在 VBA 中使用循环代码添加 n 条记录。 ***.com/questions/41817502/… Create Multiple Records in One Form. Only One Field Changes per Record的可能重复 @June7 “新元素”是新纪录 好的,将新记录提交到表中,然后运行使用该新 ID 创建相关依赖记录的代码。链接中的示例代码。尝试,当您有特定问题的代码时,发布问题。 为什么不INSERT INTO table1 (Id_1, Id_2) SELECT constant_value, Id_2 FROM table2 【参考方案1】:

您可以使用insert... select 语法从第二个表中选择数据到您的关系表中,在选择中使用新的 id 作为 const:

insert into Relation_table (Id_1, Id_2) 
   select 'id_1_new' as Id_1, Id_2 from Table2;

【讨论】:

这太令人困惑了,但它确实有效......我想它就像select (('id_1_new' as Id_1),(Id_2 from Table2)),这是正确的吗?我可以尝试(当然结果不同)select Id_1 from Table1, Id_2 from Table2 之类的东西吗? @DanielMöller 可以这样想——您运行选择查询,并将结果插入到您的关系表中。所以只要选择部分有效,并返回预期的列以适应插入,它就会起作用

以上是关于SQL - 插入两列,一列来自表,另一列是常量的主要内容,如果未能解决你的问题,请参考以下文章

如何将三列合并为两列,一列是分类的,另一列是数字的? (蟒蛇熊猫)

两列上的 DENSE_RANK,其中一列是不同的值,另一列是重复的

sql server 中有一张表,我想把表中两列的数据合并后插入本表中另一列!请问怎么实现

将一张表数据定时插入到另一张表

更新另一列时,使用列名作为 PL/SQL 关联数组的键

按两列排序,为啥不先分组呢?