MySQL多表连接查询
MySQL多表连接查询是一种将多张表中的数据联合起来展示的查询方式,通常用于需要跨多张表查询的情况。MySQL多表连接查询可以通过多种方式实现,例如使用INNER JOIN、LEFT JOIN、RIGHT JOIN等语句。
以下简单介绍这些连接方式的含义和用法:
INNER JOIN(内连接):获取两个表中字段匹配关系的记录,也就是两个表的交集部分。例如,查询学生表和成绩表中,学号和姓名相同的记录,可以使用如下语句:
SELECT student.id, student.name, score.grade FROM student INNER JOIN score ON student.id = score.id;
LEFT JOIN(左连接):获取左表所有记录,即使右表没有对应匹配的记录,右表中没有匹配的记录则填充NULL。例如,查询学生表和成绩表中,所有学生的姓名和成绩,如果某个学生没有成绩,则显示NULL,可以使用如下语句:
SELECT student.id, student.name, score.grade FROM student LEFT JOIN score ON student.id = score.id;
RIGHT JOIN(右连接):与LEFT JOIN相反,用于获取右表所有记录,即使左表没有对应匹配的记录,左表中没有匹配的记录则填充NULL。例如,查询学生表和成绩表中,所有有成绩的学生的姓名和成绩,如果某个成绩没有对应的学生,则显示NULL,可以使用如下语句:
SELECT student.id, student.name, score.grade FROM student RIGHT JOIN score ON student.id = score.id;
CROSS JOIN(交叉连接):获取两个表中所有记录的排列组合,也就是两个表的笛卡尔积。例如,查询学生表和课程表中,所有学生和课程的组合,可以使用如下语句:
SELECT student.id, student.name, course.name FROM student CROSS JOIN course;
发表评论