mysql join用法
MySQL中提供了多种JOIN方式,来满足我们对于不同数据表中数据的连接需求。本文将介绍MySQL的JOIN用法,包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN。
一、INNER JOIN
INNER JOIN即内连接,其作用是将两个表中的符合条件的数据进行匹配,并返回匹配结果。INNER JOIN返回的数据中会包含两个表中都有的记录。其语法如下:
SELECT 列名 FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;
其中,ON为连接两张表的条件。接下来,我们举个例子,说明INNER JOIN的用法:
假设我们有以下两个表:表1:students(id, name, age);表2:scores(id, math, english, chinese)。
我们要在查询结果中,显示出学生的姓名、年龄、数学成绩、英语成绩和语文成绩,那么
可以这样写:
SELECT students.name, students.age, scores.math, lish, scores.chinese FROM students INNER JOIN scores ON students.id = scores.id;
二、LEFT JOIN
LEFT JOIN即左连接,其作用是将左侧表中的所有数据与右侧表中符合条件的数据返回,并在右侧表中没有匹配到的数据用NULL进行填充。其语法如下:
SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;
同样,ON为连接两张表的条件。接下来,我们举个例子,说明LEFT JOIN的用法:
假设我们有以下两个表:表1:students(id, name, age);表2:scores(id, math, english, chinese)。
我们要在查询结果中,显示出学生的姓名、年龄、数学成绩、英语成绩和语文成绩,如果某个学生没有对应的成绩,则用NULL代替,那么可以这样写:
SELECT students.name, students.age, scores.math, lish, scores.chinese FROM students LEFT JOIN scores ON students.id = scores.id;
多表left join 三、RIGHT JOIN
RIGHT JOIN即右连接,其作用是将右侧表中的所有数据与左侧表中符合条件的数据返回,并在左侧表中没有匹配到的数据用NULL进行填充。其语法如下:
SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;
同样,ON为连接两张表的条件。接下来,我们举个例子,说明RIGHT JOIN的用法:
假设我们有以下两个表:表1:students(id, name, age);表2:scores(id, math, english, chinese)。
我们要在查询结果中,显示出学生的姓名、年龄、数学成绩、英语成绩和语文成绩,如果成绩表中某个学生的ID不存在,则用NULL代替学生信息,那么可以这样写:
SELECT students.name, students.age, scores.math, lish, scores.chinese F
ROM students RIGHT JOIN scores ON students.id = scores.id;
四、FULL OUTER JOIN
FULL OUTER JOIN即全外连接,其作用是将左右两侧表中的所有数据返回,并在没有匹配到的数据用NULL进行填充。MySQL中没有提供FULL OUTER JOIN语法,不过可以使用UNION和LEFT JOIN、RIGHT JOIN进行组合,来达到FULL OUTER JOIN的效果。其语法如下:
SELECT 列名 FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名 UNION SELECT 列名 FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;
接下来,我们举个例子,说明FULL OUTER JOIN的用法:
假设我们有以下两个表:表1:students(id, name, age);表2:scores(id, math, english, chinese)。
我们要在查询结果中,显示出学生的所有信息,以及对应的成绩信息(如果没有对应的成绩则用NULL代替),那么可以这样写:
SELECT students.name, students.age, scores.math, lish, scores.chinese FROM students LEFT JOIN scores ON students.id = scores.id UNION SELECT students.name, students.age, scores.math, lish, scores.chinese FROM students RIGHT JOIN scores ON students.id = scores.id;
以上就是MySQL的JOIN用法,包括INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN,通过对不同表的连接方式,可以实现不同数据返回需求。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论