MySQL使用联结
简介
使用联结可以用一条SELECT语句检索出多个表的数据,使用联结的前提是表之间存在关联(一个表的除主键外的某一列,即:外键,是另一个表的主键),例如下图:(t_student的class_id是外键,表示班级和学生是一对多的关系,即一个班级有0个或多个学生)
实例
使用where
查询学生的班号、姓名、年龄
其中班号在表t_class、姓名和年龄在表t_student
表t_student的class_Id字段是外键
1 | SELECT class_num,student_name,age FROM t_class,t_student WHERE t_class.`id`=t_student.`class_id`; |
使用inner join
下面的SQL语句的作用和上一条语句的作用是一样的
1 | SELECT class_num,student_name,age FROM t_class INNER JOIN t_student ON t_class.`id`=t_student.`class_id`; |
联结多个表
使用where
查询学生的班号、姓名、语文成绩、数学成绩、英语成绩
其中班号在表t_class,姓名和年龄在表t_student,语文成绩、数学成绩和英语成绩在表t_score2
外键:表t_student的class_id字段,表t_score2的student_id字段
1
SELECT class_num,student_name,chinese_score,math_score,english_score FROM t_class,t_student,t_score2 WHERE t_class.`id`=t_student.`class_id` AND t_student.`id`=t_score2.`student_id`;
使用inner join
1
SELECT class_num,student_name,chinese_score,math_score,english_score FROM t_class INNER JOIN t_student INNER JOIN t_score2 ON t_class.`id`=t_student.`class_Id` AND t_student.`id`=t_score2.`student_id`;
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeDao's Blog!
评论