有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。
数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。
在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。
连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接。
左连接(left join):返回包括左表中的所有记录和右表中连接字段相等的记录:
1 课程表 2 +-----+--------+------------+ 3 | cid | cname | teacher_id | 4 +-----+--------+------------+ 5 | 1 | 生物 | 1 | 6 | 2 | 物理 | 2 | 7 | 3 | 体育 | 3 | 8 | 4 | 美术 | 2 | 9 +-----+--------+------------+
1 教师表 2 +-----+-----------------+ 3 | tid | tname | 4 +-----+-----------------+ 5 | 1 | 张磊老师 | 6 | 2 | 李平老师 | 7 | 3 | 刘海燕老师 | 8 | 4 | 朱云海老师 | 9 | 5 | 李杰老师 | 10 +-----+-----------------+
课程表的teacher_id与教师表的tid关联
SELECT c.cname,t.tname FROM course c INNER JOIN teacher t ON c.`teacher_id` = t.`tid`;
1 +--------+-----------------+ 2 | cname | tname | 3 +--------+-----------------+ 4 | 生物 | 张磊老师 | 5 | 物理 | 李平老师 | 6 | 美术 | 李平老师 | 7 | 体育 | 刘海燕老师 | 8 +--------+-----------------+
原文:https://www.cnblogs.com/mliu/p/10575382.html