sql中的JOIN

两张表:
STUDENT: stu_ID, stu_NAME //stu_ID为主键
SUBJECTINFO: stu_ID,subject,grade // 学生id 科目 成绩

查询所有学生的总成绩:

select  a.stu_NAME, sum(b.grade)from student  a left join  subjectinfo  b on a.stu_ID=b.stu_ID group by b.stu_ID

1、左连接 LEFT JOIN ,即左表的行将全部返回,即使右表没有相匹配的对应返回null
2、FULL JOIN, 相当于左连接和右连接的集合,两边行全返回,不匹配的对应null
3、JOIN,只返回左右相匹配的行

CROSS JOIN 是将a表的行和b表的行进行N*M组合,即笛卡尔积

你可能感兴趣的:(sql中的JOIN)