我有2个表所示:选择和从2代表的SQL Server中插入的更优雅的方式
ID NAME
-------------
1 someValue
2 someValue
3 someValue
4 someValue
...
ID NAME
-------------
1 var
2 var2
3 var3
4 var4
...
我想从表1一个@table
2结果插入,并从表2 3分的结果,不同的ID,目前,我有这样的:
Declare @vars TABLE(
field1 varchar(80),
field2 varchar(80),
field3 varchar(80),
field4 varchar(80),
field5 varchar(80)
)
INSERT INTO @vars(field1, field2, field3, field4, field5)
SELECT a.Name,
b.Name,
c.Name,
d.Name,
e.Name
FROM @Table1 a,
@Table1 b,
@Table2 c,
@Table2 d,
@Table2 e
WHERE a.ID = 1
AND b.ID = 25
AND c.ID = 12
AND d.ID = 25
AND e.ID = 14
我得到的预期值,但...
- 是否有莫重新做优雅的方式 这个?我想我需要做的事情超过 。
P.D. 我得到的是这样的:
field1 field2 field3 field4 field5
-------------------------------------
val1 var2 val4 val7 var7
使用`table1,table2,table3,.....`旧样式的JOIN语法,如果你不注意的话,你一定会拥有笛卡尔产品!我建议总是使用新的,标准化的ANSI JOIN语法代替:`INNER JOIN,LEFT OUTER JOIN,RIGHT OUTER JOIN`等等 – 2011-02-18 05:49:06