代码之家  ›  专栏  ›  技术社区  ›  user52212

ANSI-92之前的左连接语法(Sybase)

  •  0
  • user52212  · 技术社区  · 17 年前

    当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”没有匹配项。当SeqNo上的匹配行在't'中不存在时,我希望t1.ID在Select子句中返回NULL。

    我收到的错误是“外部联接的两个项都必须包含列”。

    目前我正在SQLServer2005中执行此查询,但它最终将用于Sybase实现,这需要旧的联接语法。

    1 回复  |  直到 17 年前
        1
  •  0
  •   Joel Coehoorn    17 年前

    我认为这可以做到,但您必须进行测试以确定:

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

    推荐文章