如何在sql中获取行列表并在其中查找



我在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

怎么做?

使用 INSERT INTO

INSERT INTO PriceClick(ClickId, EntityTypeId)
SELECT ClickId, EntityTypeId
FROM Click
WHERE EntityTypeId = 2

如果您没有 DestinationTable 请使用 SELECT INTO,如果您已经创建了 DestinationTable 则使用 INSERT INTO 作为提到的其他答案 (@wewesthemenace)

SELECT *
INTO DestinationTable
FROM SourceTable
WHERE ....

如果您正在寻找从一个表到另一个表的批量插入,并且您具有类似的表结构,则无需使用任何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

请注意,您应该在主表中具有相同的数据类型定义

相关内容

最新更新