Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程_MySQL

PHP中文网
Freigeben: 2016-05-27 13:46:09
Original
1257 Leute haben es durchsucht

LEFT JOIN 语法用法与实例
MySQL LEFT JOIN 语法
SQL(MySQL) LEFT JOIN 会取得左表(table1)全部记录,即使右表(table2)并无对应匹配记录。LEFT JOIN 基本语法如下:

... FROM table1 LEFT JOIN table2 ON condition ...
Nach dem Login kopieren

MySQL LEFT JOIN 用法实例
下面是两个原始数据表:
article 文章表:

20151216115130281.png (641×129)

user 用户表:

20151216115300000.png (638×103)

我们列出所有的文章及对应的所属用户,即使没有用户的文章也列出。
SELECT ... LEFT JOIN ... ON 语句如下:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user ON article.uid = user.uid
Nach dem Login kopieren

返回查询结果如下:

20151216115324786.png (634×130)

可以看出来,与 INNER JOIN 明显的区别是,左表记录被全部取出,即使右表无对应匹配记录。
提示
这里所谓记录被“全部”取出,是相对于 INNER JOIN 的限制来说的。其实可以在上面的 SQL 语句后面加个 WHERE 条件或者 LIMIT 等关键字以同一般 SQL 语句一样对结果集做一个范围限制。
IS NULL
在上面的例子中,对于右表中没有对应匹配的数据记录,其所有的列都被置为 NULL,因此要查询这部分记录(如在上面例子中体现为查找 aid=4 这类无对应用户的文章记录),可以附加 IS NULL 条件:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user 
ON article.uid = user.uid WHERE user.uid IS NULL
Nach dem Login kopieren

RIGHT JOIN 语法用法与实例
MySQL RIGHT JOIN 语法
SQL(MySQL) RIGHT JOIN 会取得右表(table2)全部记录,即使左表(table2)并无对应匹配记录。RIGHT JOIN 基本语法如下:

... FROM table1 RIGHT JOIN table2 ON condition ...
Nach dem Login kopieren

MySQL RIGHT JOIN 用法实例
下面是两个原始数据表:
article 文章表:

20151216115403445.png (642×130)

user 用户表:

20151216115453219.png (640×103)

我们列出所有的用户,以及他们可能拥有的文章。
SELECT ... RIGHT JOIN ... ON 语句如下:

SELECT article.aid,article.title,user.username FROM article RIGHT JOIN user ON article.uid = user.uid
Nach dem Login kopieren

返回查询结果如下:

20151216115512832.png (641×130)

对比 LEFT JOIN 返回的查询结果,RIGHT JOIN 返回的结果与其刚好“相反”。
IS NULL
在上面的例子中,对于左表中没有对应匹配的数据记录,其所有的列都被置为 NULL,因此要查询这部分记录(如在上面例子中体现为查找 username=Jack 这类无对应文章的所有用户),可以附加 IS NULL 条件:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user 
ON article.uid = user.uid WHERE article.aid IS NULL
Nach dem Login kopieren


以上就是MySQL表LEFT JOIN左连接与RIGHT JOIN右连接的实例教程_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!



Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage