内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我不能很好地学习如何使用联接。我总是使用服务器端代码来实现这些目标。是否可以在没有ON
是吗?基本上,这些联接如何区别于左联接,右连接,它们在我的示例中做同样的事情。
MySQL文献资料包括这个话题。
这是一个概要。使用时join
或inner join
,on
条件是可选的。这与ANSI标准不同,也不同于几乎任何其他数据库。效果是cross join
...。类似地,您可以使用on
带cross 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
子句对于右或左外部联接是必需的,因此讨论与它们无关。
如果需要了解不同类型的连接,那么需要对关系数据库进行一些研究。