连接查询是数据库使用中最常见的操作之一,用于在两张表(或多张表)之间进行匹配操作。在MySQL中提供了对连接操作的支持,包括的功能主要有交叉连接(CROSS JOIN)、内连接(INNER JOIN)和外连接(OUTER INNER)。本文中将对MySQL中支持的这三种连接查询做简单介绍。
一、CROSS JOIN
CROSS JOIN 为交叉连接,是对两个表执行笛卡尔积操作,返回的结果是两个表中所有列的组合。如果其中一个表有m行数据,另一个表包含n行数据,则进行CROSS JOIN操作之后,返回的结果包含m*n行数据。除了可以用在两个表或多个表间产生笛卡尔积之外,CROSS JOIN也可用于一个表与其自身进行连接操作,此时必须为表指定别名,不然会出现“ERROR 1066(42000):Not nuique table/alias:'table_name'”的错误。
以student表为例,其与自身进行连接操作如下:
SELECT a.stu_no, b.stu_no
FROM student AS a
CROSS JOIN
student AS b;