Sql 无on子句的连续联接
我正在查看一个SQL存储过程,在理解连接的一部分时遇到了一个问题。有谁能在不使用“on”子句的情况下建议这些联接如何工作Sql 无on子句的连续联接,sql,Sql,我正在查看一个SQL存储过程,在理解连接的一部分时遇到了一个问题。有谁能在不使用“on”子句的情况下建议这些联接如何工作 您的查询可以翻译为 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 L
您的查询可以翻译为
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
什么数据库管理系统?有不同类型的SQL。这样做是有效的,但在B.ItemId=C.ItemId上的
之后似乎缺少了On
子句。您能显示完整的语句吗?是否有可能SQL.TableA
只能是一行?@RBarryYoung正在寻找的是类似SQL server、mysql、sqlite、oracle之类的东西。。。类似的。你有没有试着在一些测试表上测试它来分析结果?您是否查看了DB产品的手册,以了解没有ON子句的联接的默认行为是什么?
FROM
SQL.TableA A LEFT JOIN
SQL.TableB B LEFT JOIN
SQL.TableC C ON ColumnThatAandBTablesHave = C.ITEMID