MYSQL支持三种联接查询:
CROSS JOIN(交叉联接)
INNER JOIN(内联接)
OUTER JOIN(外联接)
“对于三种联接查询,要注意逻辑查询处理的阶段。每个联接查询都只发生在两个表之间,即使FROM子句中包含多个表也是如此。每次联接操作也只进行逻辑操作的前三个小聚,每次产生一个虚拟表,这个虚拟表再依次与FROM子句的下一个表进行联接,重复上述步骤,直到FROM后的表都被处理完。“
CROSS JOIN:只应用处理阶段里的每一个阶段,即产生笛卡儿积。它的一个用处是可快速生成重复的测试数据,另外可作为返回结果集的行号。
INNER JOIN :(1) INNER可省。
(2)应用处理阶段的前两个步骤:产生笛卡儿积,按照ON进行过滤,不会添加部行,因此过滤条件在ON子句和WHERE子句中是没有任何区别 的:....JOIN TABLE2 ON CONDITION1 WHERE CONDITION2与.....JOIN TABLE2 ON CONDITION1 AND CONDITION2结果一样。这是它与OUTER JOIN的最大差别。
(3)如果INNER JOIN 后不跟ON与CROSS JOIN 无异
OUTER JOIN :应用逻辑查询的三个步骤:产生笛卡儿积,按照ON进行过滤,添加部行。