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操作来实现。
网友评论