2009-03-02 55 views
0

當Where子句的一部分具有「等於某個常量」條件時,使用預ANSI-92語法(即* =)指定左連接的語法是什麼? (在這種情況下100是常數)PRE ANSI-92左連接語法(Sybase)

實施例:

 

SELECT t1.ID, t.* 
FROM (select * from SybaseTable where ID=1) t, SqlServerTable t1 
WHERE t1.ID *= 100 and t1.SeqNo *= t.SeqNo 
 

在這種情況下我想從派生表「T」的所有記錄,即使「T1」具有不匹配。當't'中不存在與SeqNo匹配的行時,我希望t1.ID在Select子句中返回NULL。

我收到的錯誤是「外連接的兩個項都必須包含列」。

我現在正在SQL Server 2005中執行此查詢,但它最終將用於需要舊連接語法的Sybase實現。

在此先感謝

回答

0

我想這會做到這一點,但你必須測試以肯定的:

SELECT t1.ID, t.* 
FROM (select * from SybaseTable where ID=1) t, SqlServerTable t1 
WHERE t.SeqNo *= t1.SeqNo AND 100 *= t1.ID 

請注意,我改變了對部分的SeqNo的順序,以更好地顯示這是連接的左側。

+0

我試過了,它沒有返回任何記錄,當* =從「= 100」部分中刪除時它不表現爲左連接 – user52212 2009-03-02 21:25:35