MySql常见语句
2019-08-18 本文已影响0人
huxt
1.INNER JOIN(内连接)
![](https://img.haomeiwen.com/i17993869/0fecf99f37122a60.png)
![](https://img.haomeiwen.com/i17993869/fa4ab5f950a053e6.png)
在上面图中,products表中的productLine列参考引用productlines表的productline列。products表中的productLine列称为外键列。
通常,连接具有外键关系的表,如产品线(productlines)和产品(products)表。现在,如果想获取以下数据 -
获取products表中的productCode和productName列的值。
获取productlines表产品线的描述 -textDescription列的值。
为此,需要通过使用INNER JOIN子句根据productline列匹配行来从两个表中查询选择数据,如下所示:
![](https://img.haomeiwen.com/i17993869/f7edc092182c372c.png)
由于两个表的连接列是使用相同一个列:productline,因此可以使用以下语法:
![](https://img.haomeiwen.com/i17993869/c5b2cd41679fb0a6.png)
MySQL INNER JOIN GROUP BY子句
![](https://img.haomeiwen.com/i17993869/b2374eaf45d3eba2.png)
![](https://img.haomeiwen.com/i17993869/9aa62a34c65d39c6.png)
MySQL INNER JOIN使用等于以外的运算符
![](https://img.haomeiwen.com/i17993869/dd2e8aa3d47c26d8.png)
2.LEFT JOIN(左连接)
左连接LEFT JOIN的含义就是求两个表的交集外加左表剩下的数据。依旧从笛卡尔积的角度讲,就是先从笛卡尔积中挑出ON子句条件成立的记录,然后加上左表中剩余的记录(见最后三条)。
![](https://img.haomeiwen.com/i17993869/0326f6f94638953b.png)
![](https://img.haomeiwen.com/i17993869/1c56df02544ba80a.png)
3.RIGHT JOIN(右连接)
同理右连接RIGHT JOIN就是求两个表的交集外加右表剩下的数据。再次从笛卡尔积的角度描述,右连接就是从笛卡尔积中挑出ON子句条件成立的记录,然后加上右表中剩余的记录(见最后一条)。
![](https://img.haomeiwen.com/i17993869/6871a75f554cca11.png)
4.OUTER JOIN(外连接)
外连接就是求两个集合的并集。从笛卡尔积的角度讲就是从笛卡尔积中挑出ON子句条件成立的记录,然后加上左表中剩余的记录,最后加上右表中剩余的记录。另外MySQL不支持OUTER JOIN,但是我们可以对左连接和右连接的结果做UNION操作来实现。
![](https://img.haomeiwen.com/i17993869/41446564ed333825.png)
![](https://img.haomeiwen.com/i17993869/394d2b649fe279fe.png)