我可以不附带条件地使用MySQLJoin吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (147)

我不能很好地学习如何使用联接。我总是使用服务器端代码来实现这些目标。是否可以在没有ON是吗?基本上,这些联接如何区别于左联接,右连接,它们在我的示例中做同样的事情。

提问于
用户回答回答于

MySQL文献资料包括这个话题。

这是一个概要。使用时joininner joinon条件是可选的。这与ANSI标准不同,也不同于几乎任何其他数据库。效果是cross join...。类似地,您可以使用oncross join,这也不同于标准SQL。

交叉连接创建了一个笛卡尔积--也就是说,从第一个表到第二个表的每一个可能的1行和1行的组合。三行表(“a”、“b”和“c”)的交叉联接和四行表(例如1、2、3、4)的交叉联接将有12行。

实际上,如果要执行交叉连接,则使用cross join:

from A cross join B

比:

from A, B

以及:

from A join B -- with no on clause

on子句对于右或左外部联接是必需的,因此讨论与它们无关。

如果需要了解不同类型的连接,那么需要对关系数据库进行一些研究。

用户回答回答于

可以使用“USING”代替“on”,如查询中所示。

SELECT * FROM table1 LEFT JOIN table2 USING (id);

扫码关注云+社区