插入子查询的结果为表常数(Insert results of subquery into table

2019-08-01 13:19发布

是有问题的表的概要如下:

我有一个表,让我们把它加入,有两列,两外键与其他表。 让我们把两列的用户ID和buildingid所以加入的样子

+--------------+
| join         |
|--------------|
|userid        |
|buildingid    |
+--------------+

基本上,我需要插入一堆行到这个表。 每个用户将通过该表具有多个项目被分配到多个建筑物。 因此,用户13可能是由以下被分配到建筑物1,2,3

13 1
13 2
13 3

我试图找出如何做到这一点的查询,如果门牌号数是不变的,那就是,我指定一组人在同一建筑物。 基本上,(这是错误的),我想要做的

insert into join (userid, buildingid) values ((select userid from users), 1)

那有意义吗? 我已经使用也试着

select 1

我遇到的错误是该子查询返回不止一个结果。 我也试图创建一个连接,基本上是一个静态的选择查询也是不成功的。

有什么想法吗?

谢谢,克里斯

Answer 1:

几乎! 当你要插入到查询的价值观,不要试图把他们在values条款。 insert可以采取select作为值的说法!

insert into join (userid, buildingid)
select userid, 1 from users

此外,学习更多的精神,你可以创建一个不使用以下语法存在的表:

select userid, 1 as buildingid
into join
from users

这只有在表不存在,虽然有效,但它是一个快速和肮脏的方式来创建表的副本!



文章来源: Insert results of subquery into table with a constant