MS SQL从多行插入

时间:2014-04-14 09:52:07

标签: sql sql-server-2008

我试图从几个表中将值插入数据库中:

insert dbo.Table1
(ID, IDTable2, IDCounter)
select
s.ID
o.IDTable2
o.IDCounter
from dbo.table3 as o, dbo.table2 as s

但是上面的代码导致了我从表3中获取值的重复值的情况,其中我只需要来自表3的每个值中的一个值。(表中没有任何关系信息)

提前致谢。

编辑:

谢谢大家。我设法通过向table2添加引用id然后使用内部联接来解决它。

2 个答案:

答案 0 :(得分:0)

您不应该使用完全连接,因为这将导致table3行x table2行。改为使用内部联接。

答案 1 :(得分:0)

您忘记了加入表table2和table3的条款,从而构建了一个笛卡尔积。必须有一些连接表格的东西;否则将它们组合起来是没有意义的。

我的建议:远离旧的连接语法,列出以逗号分隔的表格。使用最新的连接语法(INNER JOIN ON等)。

话虽如此,我不知道你的选择无论如何都会有意义。 ID是要成为table2的ID而IDTable2也要成为table2的ID?