由于EF正在寻找一个名为be_PostTagbe_Posts
的表,我必须创建一个新表以使Include语句在Entity Framework中工作。我正在使用DB的EF Code First。但现在的问题是关于SQL。我添加了一行数据,现在包含了工作。但我正在寻找的是一个SQL命令,它可以将数据从1个表中的1列和另一个表中的1列复制到新的be_PostTagbe_Posts
表中。在be_Posts表中,我需要PostRowID
中的数据进入be_Posts_PostRowID
和PostTagId
进入be_PostTag_PostTagID
。 be_PostTag_PostTagID
和be_Posts_PostRowID
都位于新be_PostTagbe_Posts
表中。我对SQL不是很好,所以不知道如何做到这一点。
编辑:谢谢你的回答。我尝试了2个单独的查询,但只有数据被插入到be_PostTag_PostTagID
,而be_PostTag_PostRowID
仍然为空。
我尝试了这个返回The multi-part identifier "be_PostTag.PostID" could not be bound.
INSERT INTO be_PostTagbe_Posts(be_PostTag_PostTagID, be_Posts_PostRowID)
SELECT be_PostTag.PostTagID, be_Posts.PostRowID
WHERE be_PostTag.PostID = be_Posts.PostID
编辑: 这只插入了一半的数据 - 即使是2个插入也只留下一列空白
INSERT INTO be_PostTagbe_Posts (be_Posts_PostRowID)
SELECT PostRowID FROM be_Posts;
INSERT INTO be_PostTagbe_Posts (be_PostTag_PostTagID)
SELECT PostTagID FROM be_PostTag;
然而管理工作室告诉我成功执行了查询但是一列仍为空。奇怪的。
以下是表格的屏幕截图:
答案 0 :(得分:2)
SELECT PostTagID AS be_PostTag_PostTagID, PostRowID AS be_Posts_PostRowID
INTO be_PostTagbe_Posts
FROM be_PostTag
Inner JOIN be_Posts
ON be_PostTag.PostID=be_Posts.PostID
该命令创建了新表,其中填充了2列。
答案 1 :(得分:1)
如果我了解您,您希望将Table Z's Column A
复制到Table X
并Table Z's Column B
复制到Table Y
。
如果是这样,根据您的问题,TableX
和TableY
假设TableX
和TableY
单个ColumnTable [除了IdentityColumn]我们的查询将是
INSERT INTO TableX
SELECT ColumnA FROM TableZ
INSERT INTO TableY
SELECT ColumnB FROM TableZ
休息放置表的整个结构以获得更多帮助,因为这些查询是在假设上
答案 2 :(得分:0)
在您的问题中没有足够的信息为您提供一个有效的示例,但这将是使用其他两个表中的SELECTing查询INSERT到另一个表的一般语法。
INSERT INTO destination_table(wanted_value_1, wanted_value_2)
SELECT table_1.source_field_1, table_2.source_field_1
WHERE table_1.matching_field = table_2.matching_field
两个表之间必须存在某种关系,WHERE子句才能在该语句中起作用。我猜测你提供的信息很少,表中的某个地方有一个PostRowID字段,其中包含标签,这样你的数据在标签表中看起来就像这样:
PostRowID PostTagID
--------- ---------
1 1
1 2
1 3
1 4
2 1
2 2
3 3
4 4
答案 3 :(得分:0)
听起来你应该使用两个sql语句:
Insert into `be_PostTagbe_Posts` (`be_PostTag_PostTagID`)
select `PostTagID` from POSTTAGIDTABLE
和
Insert into `be_PostTagbe_Posts` (`be_Posts_PostRowID`)
select `PostRowID` from POSTTAGIDTABLE
除非项目有某种关系,否则如果你有一个select语句,它将在两列中选择合并数据,你就可以做到
Insert into `be_PostTagbe_Posts` (`be_PostTag_PostTagID`,`be_Posts_PostRowID`)
(select statement that selects the two items)