当Where子句的一部分具有“等于某个常量”条件时,使用pre ANSI-92语法(即* =)指定左连接的语法是什么? (在这种情况下,100是常数)

示例:


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部分的顺序,以更好地指示哪个是连接的左侧。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top