用常量将子查询的结果插入表中

问题描述

几乎!当您要插入查询的值时,请勿尝试将其放在values子句中。insert可以将aselect作为值的参数!

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

另外,本着学习更多的精神,您可以使用以下语法创建不存在的表:

select userid, 1 as buildingid
into join
from users

不过,这仅在表不存在的情况下才有效,但这是创建表副本的快速而肮脏的方法

解决方法

有关表格的概述如下:

我有一个表,可以称之为联接,它有两列,都是其他表的外键。让我们将两列称为userid和buildingid,以便join看起来像

+--------------+
| 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

我遇到的错误是子查询返回多个结果。我也尝试创建一个连接,基本上是使用静态选择查询也没有成功。

有什么想法吗?

谢谢克里斯