2014-12-19 31 views
0

這裏是我的查詢:如何加入表變量

DECLARE @T1 TABLE (Id int, Name varchar(max)); 
    INSERT INTO @T1 VALUES (1, 'A'); 
    INSERT INTO @T1 VALUES (2, 'B'); 
    INSERT INTO @T1 VALUES (3, 'C'); 

    DECLARE @T2 TABLE (Id int, Name varchar(max)); 
    INSERT INTO @T2 VALUES (1, 'X'); 
    INSERT INTO @T2 VALUES (2, 'Y'); 
    INSERT INTO @T2 VALUES (3, 'Z'); 

    SELECT t1.*, t2.* 
    FROM @T1 t1 
    JOIN @T2 t2; 

越來越近,最後一個語法錯誤「;」。我錯過了什麼?

+3

你缺少的條件子句來連接表 – radar 2014-12-19 00:13:13

+0

沒有condition可選?我需要所有的行,完整的笛卡爾積 – 2014-12-19 00:15:33

+1

如果您需要笛卡爾積,您可以使用交叉連接或另一種方式來編寫是select t1.id,t2.name ..從表t1中,表t2 – radar 2014-12-19 00:20:42

回答

2
JOIN @T2 t2 ON t1.SomeColumn = t2.SomeColumn 

做一個交叉連接使用的CROSS JOIN而不只是JOIN

-1
DECLARE @T1 TABLE (Id int, Name varchar(max)); 
    INSERT INTO @T1 VALUES (1, 'A'); 
    INSERT INTO @T1 VALUES (2, 'B'); 
    INSERT INTO @T1 VALUES (3, 'C'); 

    DECLARE @T2 TABLE (Id int, Name varchar(max)); 
    INSERT INTO @T2 VALUES (1, 'X'); 
    INSERT INTO @T2 VALUES (2, 'Y'); 
    INSERT INTO @T2 VALUES (3, 'Z'); 

    SELECT t1.*, t2.* 
    FROM @T1 t1 
    JOIN @T2 t2 on t1.id=t2.id