一尘不染

Sybase ASE 15中左联接和* =之间的区别

sql

我需要帮助来了解此问题,下面的两个查询有什么区别,我都知道它们不会返回相同的结果。

查询1:

SELECT a.col1, b.c1
  FROM A a
  LEFT JOIN B b
    ON a.col1 = b.c1
 WHERE b.status = 'Y'

查询2:

SELECT a.col1, b.c1
  FROM A a, B b
 WHERE a.col1 *= b.c1
   AND b.status = 'Y'

阅读 159

收藏
2021-05-23

共1个答案

一尘不染

抱歉,迟到了一点,但我找到了解决方案:在旧语法中*=,条件b.Status = 'Y'将在左侧的join
on子句中,因此在第一个查询中必须具有相同的结果,我只是将其b.Status = 'Y'移至“ on”子句中。

2021-05-23