0

当 Where 子句的一部分具有“等于某个常数”条件时,使用 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 实现,这需要旧的连接语法。

提前致谢

4

1 回答 1

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

于 2009-03-02T21:23:48.640 回答