建两张表:students学生表和subject分数表
学生表:
成绩表:
两表的关联字段为students的name和subject的sname
内连接(inner join)查询:
SELECT t.*,b.sgrade,b.subject FROM `students` t (inner) join `subject` b on t.name = b.sname;//inner可省略不写
内连接查询结果为两表的交集!!
左连接和右连接统称为外连接。
左(外)连接(left join/left outer join)查询:
SELECT t.*,b.sgrade,b.subject FROM `students` t left join `subject` b on t.name = b.sname;
左(外)连接以左表(students表)为主表,读取主表的全部数据,右表没有对应数据的则为null。(如果两个表中数据有相同部分,只显示一个)
右(外)连接(right join/right outer join)查询:
SELECT t.*,b.sgrade,b.subject FROM `students` t right join `subject` b on t.name = b.sname;
右(外)连接正好跟左连接相反!