发表于: 2018-01-20 23:34:59
1 537
今天完成的事情:
1. 完成4个接口
课时的增删改查
明天计划的事情
1.任务列表和添加接口
遇到的问题:
1. 课时的进度分散在用户_课程表里,需要进行统计,用来表示每一用户所对应的总学习课时数,并于用户Id进行一一对应。
解决方案使用视图来进行查询,禁止通过视图进行删改查。
select `user`.`id` AS `id`,`user`.`grade` AS `grade`,`user`.`name` AS `name`,`user`.`study_day` AS `study_day`,`user`.`study_star` AS `study_star`,`user`.`email` AS `email`,`user`.`status` AS `status`,sum(`user_course`.`course_progress`) AS `study_lesson`
from (`user` left join `user_course` on((`user_course`.`user_id` = `user`.`id`)))
group by `user`.`id`
收获:
外连接的使用:
外联接。
外联接可以是左向外联接、右向外联接或完整外部联接。
在 FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:
1)LEFT JOIN或LEFT OUTER JOIN
左向外联接的结果集包括 LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。
左连接
select a.*,b.* from a left join b on a.id=b.parent_id
2)RIGHT JOIN 或 RIGHT OUTER JOIN
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。
右连接
select a.*,b.* from a right join b on a.id=b.parent_id
3)FULL JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。
完全连接
select a.*,b.* from a full join b on a.id=b.parent_id
例如:上面的视图中用的是左链接
如果不用为:
用上:
任务添加接口,列表接口
预计完成时间:1.21
DOME时间:2018-2-9
评论