0

假设我有两张桌子(TableA 和 TableB)

TableA 有一个 Id(主键)和一个具有特定值的鉴别器(例如“stuff”) TableB 有一个 id 列,它本质上是 TableA id 的外键(“StuffId”)

我想做的是对 TableB 进行 SQL 查询,检查 TableA 中“stuff”(例如)的鉴别器值,如果值为“stuff”,则获取 tableA 的 Id(主键)并链接“StuffId”列中 TableB 的值

这是可行的吗?

谢谢

是的,已经存在行。

表A可能有

ID     Discriminator
--------------------    
1         stuff
2        notstuff
3         stuff

表 B 可能有

StuffID     Name
-----------------    
   43       ffr
   87       fd

我希望 stuffId 列与 TableA 中的列相同,但前提是 TableA 中的鉴别器是“stuff”

4

1 回答 1

1

好的,将我的评论重新发布为答案:

 INSERT TableB (StuffId) SELECT Id from TableA WHERE discriminator='Stuff'

应该完成您想要的,如原始帖子中所述。请注意,在 TableB 中添加的新行在名称字段中将具有 null 或默认值,因为它未在查询中指定。

编辑:根据 TableB 关于唯一性和约束的设计,此查询可能不会给出正确的结果(例如,如果 TableB 中已经存在具有 StuffId 的行,如果它们应该是唯一的,或者它可能会失败如果它们不是唯一的,可能会添加重复的行)。如果没有对表格的详细描述以及它们之间的关系,很难提供一个好的答案。

于 2013-04-25T11:28:41.887 回答