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的顺序,以更好地显示这是连接的左侧。
我试过了,它没有返回任何记录,当* =从“= 100”部分中删除时它不表现为左连接 – user52212 2009-03-02 21:25:35