数据库|MySQL连接的使用(JOIN)

一、作用-----从多个数据表中读取数据

二、分类:

  • INNER JOIN(内连接,或等值连接):获取两个表中字段匹配关系的记录。
  • LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录。
  • RIGHT JOIN(右连接): 与 LEFT JOIN 相反,用于获取右表所有记录,即使左表没有对应匹配的记录。

先导入需要用到的数据表:tcount_tbl 和 runoob_tbl

在这里插入图片描述
在这里插入图片描述

三、内连接(INNER JOIN)

使用INNER JOIN(也可以省略 INNER 使用 JOIN,效果一样)来连接以上两张表来读取runoob_tbl表中所有runoob_author字段在tcount_tbl表对应的runoob_count字段值:
在这里插入图片描述

SELECT * FROM `tcount_tbl`;

SELECT * FROM runoob_tbl;

SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;

注:a、b是表的别名,便于输入语句简单。(例如:a.runoob_id =runoob_tbl.runoob_id )

上述语句等价于:

SELECT a.runoob_id,a.runoob_author,b.runoob_count FROM runoob_tbl a,tcount_tbl b WHERE a.`runoob_author` = b.`runoob_author`;

该语句会读取左边的数据表 runoob_tbl 的所有选取的字段数据,即便在右侧表 tcount_tbl中 没有对应的 runoob_author 字段值。
在这里插入图片描述

四、左连接(LEFT JOIN)

作用:读取左边数据表的全部数据,即便右边表无对应数据
例:以 runoob_tbl 为左表,tcount_tbl 为右表

SELECT a.runoob_id,a.runoob_author,b.runoob_count FROM runoob_tbl a LEFT JOIN tcount_tbl b ON a.`runoob_author` = b.`runoob_author`;

该语句会读取左边的数据表 runoob_tbl 的所有选取的字段数据,即便在右侧表 tcount_tbl中 没有对应的 runoob_author 字段值。
在这里插入图片描述
在这里插入图片描述

五、右连接(RIGHT JOIN)

作用:读取右边数据表的全部数据,即便左边边表无对应数据
例:以 runoob_tbl 为左表,tcount_tbl 为右表

SELECT a.runoob_id,a.runoob_author,b.runoob_count FROM runoob_tbl a RIGHT JOIN tcount_tbl b ON a.`runoob_author` = b.`runoob_author`;

该语句会读取右边的数据表 tcount_tbl 的所有选取的字段数据,即便在左侧表 runoob_tbl 中没有对应的runoob_author 字段值。
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Geekst/article/details/90345581