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