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

ANSI连接与非ANSI连接

  •  0
  • user3650664  · 技术社区  · 3 年前

    我正在努力转换此查询:

    select * from T t, U u1, C c, I i, S s, TY ty, U u2 where
    t.id = u1.id
    t.curr = c.curr
    t.instanceId = i.instanceId
    i.symbol = s.symbol
    i.type = ty.type
    t.exec *= u2.exec
    

    我知道*=是一个左联接,但我不确定何时进行联接,如何在进行联接时正确地按顺序引用表。

    0 回复  |  直到 3 年前
        1
  •  1
  •   Kendle    3 年前

    似乎*=是正确的外部连接
    (如果以下结果不符合预期,请尝试左外连接)

    select * from 
    T t, 
    JOIN U u1 ON t.id = u1.id
    JOIN C c ON t.curr = c.curr
    JOIN I i ON t.instanceId = i.instanceId 
    JOIN S s ON i.symbol = s.symbol
    JOIN TY ty ON i.type = ty.type
    RIGHT OUTER JOIN U u2 ON t.exec = u2.exec;