MySQL常见的7种通用的Join查询

MySQL常见的7种通用的Join查询

MySQL常见的7种通用的Join查询_第1张图片
MySQL常见的7种通用的Join查询_第2张图片
MySQL常见的7种通用的Join查询_第3张图片
SQL JOIN: SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。

1. INNER JOIN (等值连接) 只返回两个表中联结字段相等的行,如下图所示:

MySQL常见的7种通用的Join查询_第4张图片

SQL语句:

SELECT <select_list> FROM TableA A INNER JOIN TableB B ON A.key = B.Key

例如:

SELECT * FROM student stu INNER JOIN sc s ON stu.Sno = s.Sno;

MySQL常见的7种通用的Join查询_第5张图片

2. **LEFT JOIN(左连接)**返回包括左表中的所有记录和右表中联结字段相等的记录 ,右表中没有匹配的填充NULL。

MySQL常见的7种通用的Join查询_第6张图片

SQL语句:

SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.key = B.Key

例如:

SELECT * FROM student stu LEFT JOIN sc s ON stu.Sno = s.Sno;

MySQL常见的7种通用的Join查询_第7张图片

3. **RIGHT JOIN(右连接)**返回包括右表中的所有记录和左表中联结字段相等的记录 ,左表中没有匹配的填充NULL。

MySQL常见的7种通用的Join查询_第8张图片

SQL语句:

SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.key = B.Key

例如:

SELECT * FROM student stu RIGHT JOIN sc s ON stu.Sno = s.Sno;

MySQL常见的7种通用的Join查询_第9张图片

下面四种情况是根据上面的组合而来:

SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.key = B.Key WHERE B.key IS NULL

MySQL常见的7种通用的Join查询_第10张图片

SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.key = B.Key WHERE A.key IS NULL

MySQL常见的7种通用的Join查询_第11张图片

SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.key = B.Key UNION SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.key = B.Key

MySQL常见的7种通用的Join查询_第12张图片

SELECT <select_list> FROM TableA A LEFT JOIN TableB B ON A.key = B.Key WHERE B.key IS NULL UNION SELECT <select_list> FROM TableA A RIGHT JOIN TableB B ON A.key = B.Key WHERE A.key IS NULL;

MySQL常见的7种通用的Join查询_第13张图片

你可能感兴趣的:(MySQL常见的7种通用的Join查询)