PRE ANSI-92左连接语法(Sybase)

问题描述:

当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实现。

在此先感谢

我想这会做到这一点,但你必须测试以肯定的:

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