1.INNER JOIN(内连接)


在上面图中,products表中的productLine列参考引用productlines表的productline列。products表中的productLine列称为外键列。
通常,连接具有外键关系的表,如产品线(productlines)和产品(products)表。现在,如果想获取以下数据 -
获取products表中的productCode和productName列的值。
获取productlines表产品线的描述 -textDescription列的值。
为此,需要通过使用INNER JOIN子句根据productline列匹配行来从两个表中查询选择数据,如下所示:

由于两个表的连接列是使用相同一个列:productline,因此可以使用以下语法:

MySQL INNER JOIN GROUP BY子句


MySQL INNER JOIN使用等于以外的运算符

2.LEFT JOIN(左连接)
左连接LEFT JOIN的含义就是求两个表的交集外加左表剩下的数据。依旧从笛卡尔积的角度讲,就是先从笛卡尔积中挑出ON子句条件成立的记录,然后加上左表中剩余的记录(见最后三条)。


3.RIGHT JOIN(右连接)
同理右连接RIGHT JOIN就是求两个表的交集外加右表剩下的数据。再次从笛卡尔积的角度描述,右连接就是从笛卡尔积中挑出ON子句条件成立的记录,然后加上右表中剩余的记录(见最后一条)。

4.OUTER JOIN(外连接)
外连接就是求两个集合的并集。从笛卡尔积的角度讲就是从笛卡尔积中挑出ON子句条件成立的记录,然后加上左表中剩余的记录,最后加上右表中剩余的记录。另外MySQL不支持OUTER JOIN,但是我们可以对左连接和右连接的结果做UNION操作来实现。


网友评论