SQL-每个客户需要在表中输入15行
我需要在一个表中输入多行(每购买一件商品一行)。正在从另一个表中提取customerID(我没有手动输入)。。。我已经搜索了一个又一个SQL,但没有任何帮助:( 不起作用的示例:SQL-每个客户需要在表中输入15行,sql,sql-server,tsql,insert,Sql,Sql Server,Tsql,Insert,我需要在一个表中输入多行(每购买一件商品一行)。正在从另一个表中提取customerID(我没有手动输入)。。。我已经搜索了一个又一个SQL,但没有任何帮助:( 不起作用的示例: insert into table (district, customerID, shipper, item) select 'midwest', r.customerID, 'usps', 'tablesaw' union all select 'midwest, r.customerID, 'usps', 'ban
insert into table (district, customerID, shipper, item)
select 'midwest', r.customerID, 'usps', 'tablesaw'
union all
select 'midwest, r.customerID, 'usps', 'bansaw'
union all
select 'midwest', r.customerID, 'usps', 'drill'
from reg r
表中的数据应如下所示:
midwest, a2234, USPS, tablesaw
midwest, a2234, USPS, bansaw
midwest, a2234, USPS, drill
这不是
UNION
的工作方式,您应该在UNION
中为每个选择重复from reg r部分使用下一个代码:
insert into table (district, customerID, shipper, item)
select 'midwest', r.customerID, 'usps', 'tables' from reg r
union all
select 'midwest', r.customerID, 'usps', 'bansaw' from reg r
union all
select 'midwest', r.customerID, 'usps', 'drill' from reg r
insert into table (district, customerID, shipper, item)
select 'midwest', customerID, 'usps', 'tablesaw'
from reg where customerID = 'a2234'
union all
select 'midwest', r.customerID, 'usps', 'bansaw'
from reg where customerID = 'a2234'
union all
select 'midwest', r.customerID, 'usps', 'drill'
from reg where customerID = 'a2234'
1) 先运行Union而不执行insert,以确认要插入的数据
2) 选择“midwest
的”
最后缺失。(第二次在联合
中选择
)您可以使用交叉连接
只读取一次注册表
:
您的编辑澄清了我的问题,而我正在格式化它。从reg r添加到每个select语句。可能在customerid='a2234'的情况下,如果正在为其他customerid创建触发器或其他东西,那么也可以考虑创建触发器或其他东西。表中的数据将为同一个customer创建X行数…只有项目不同,所有其他字段都会重复。我不知道如何在一个SQL中插入多行-所有客户行,而不是为每个项目运行一个查询。声明收到错误没有帮助。告诉我们错误消息提供了一些信息。好的。。。对这就解决了它。。。虽然代码不整洁,但它是有效的,这是目前最重要的。我必须重复从哪里开始工作的所有步骤。是的,这是UNION的优点,在本用例中也是弱点
insert into table (district, customerID, shipper, item)
select 'midwest', r.customerID, 'usps', t.val
from reg r
cross join (
select 'tablesaw' val union all
select 'bansaw' val union all
select 'drill' val
) t