我在sql数据库中有一个名为Click
的表。此表存储所有内容的点击。此表有一个名为EntityTypeId
的字段,表示此行是针对哪个实体的。我想获取特殊类型的点击并将它们存储在另一个表中。所以我应该从Click
表中选择它们并将它们插入到PriceClick
表中。
以下是Click
表记录:
ClickId | EntityTypeId
------------------------
1 1
2 2
3 2
4 3
以下是Click
表和PriceClick
表所需的行:
Price
:
ClickId | EntityTypeId
------------------------
1 1
4 3
PriceClick
:
ClickId | EntityTypeId
------------------------
2 2
3 2
怎么做?
答案 0 :(得分:1)
如果您没有DestinationTable,请使用SELECT INTO
或如果您已经创建了DestinationTable,请使用INSERT INTO
作为提及的其他答案(@wewesthemenace)
SELECT *
INTO DestinationTable
FROM SourceTable
WHERE ....
答案 1 :(得分:1)
使用INSERT INTO
:
INSERT INTO PriceClick(ClickId, EntityTypeId)
SELECT ClickId, EntityTypeId
FROM Click
WHERE EntityTypeId = 2
答案 2 :(得分:1)
如果您正在寻找从一个表到另一个表的批量插入,并且您具有类似的表结构,则不需要使用任何foreach
或其他循环。
有一种简单的方法可以实现这一目标 -
CREATE TABLE Click (ClickId bigint, EntityTypeId bigint)
INSERT INTO Click VALUES (1,1)
INSERT INTO Click VALUES (2,2)
INSERT INTO Click VALUES (3,2)
INSERT INTO Click VALUES (4,3)
CREATE TABLE PriceClick (ClickId bigint, EntityTypeId bigint)
INSERT INTO PriceClick (ClickId,EntityTypeId)
SELECT ClickId,EntityTypeId
FROM Click WHERE ClickId = 2
CREATE TABLE Price (ClickId bigint, EntityTypeId bigint)
INSERT INTO Price (ClickId,EntityTypeId)
SELECT ClickId,EntityTypeId
FROM Click WHERE ClickId <> 2
请注意您应该在主表
中使用相同的数据类型定义