我正在检查一个SQL存储过程,在理解一段连接时遇到了问题。有人能就这些连接如何工作而不使用"on"子句提出建议吗?
FROM
SQL.TableA A LEFT JOIN SQL.TableB B LEFT JOIN SQL.TableC C
ON B.ITEMID = C.ITEMID
您的查询可以翻译为
FROM
SQL.TableA A LEFT JOIN
SQL.TableB B ON B.ITEMID = C.ITEMID LEFT JOIN
SQL.TableC C ON B.ITEMID = C.ITEMID
正如你所看到的,这并没有多大意义,因为a没有被连接
我希望是这样的:
FROM
SQL.TableA A LEFT JOIN
SQL.TableB B LEFT JOIN
SQL.TableC C ON B.ITEMID = C.ITEMID
ON A.ITEMID = C.ITEMID
或者以这种形式写成的有效查询
FROM
SQL.TableA A LEFT JOIN
SQL.TableB B LEFT JOIN
SQL.TableC C ON ColumnThatAandBTablesHave = C.ITEMID