关于2-17

关于2-17

自查询,第一步左边的是主表,流程是不是这样 先把主表列出来,然后对着主表的s.pid=子表的id 去往pid里面填子表的name。

第二步 右边是主表 不能理解为什么会出现三个服装。。。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕阿莹 2018-09-05 11:16:11

同学是说11分45秒左右的下图么?

http://img1.sycdn.imooc.com//climg/5b8f49dd00012bdc08490630.jpg

如果是,因为子分类下有三个服装,所以它都一一列出来了。

如果不是,还请用指明一下是什么时间点出现的三个服装

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 慕无忌0089299 #1
    两个表都是一样的 哪个做主表结果不应该是一样吗?请老师点出差别在哪,从语句上
    2018-09-05 13:37:34
  • 好帮手慕阿莹 回复 提问者 慕无忌0089299 #2
    当以哪个表为主表时,就查出它所有的数据,而如果副表中没有的对应的,则用null补充。如果副表中有主表中不存在的,则会被忽略,不展示出来。 举个例子,如果以p表为主,s表为副表, 假如s表下还有一个子id为西瓜,对应的父id是零食。但是p表中,没有父id为零食的分类,那么 ,这条就会被忽略,根本查不出来。反之,如果s表做主表,就会被查出来 ,此时西瓜前边对应的是null(因为p表中没有零食这个选择)。
    2018-09-05 14:29:53
乐高战士 2018-09-05 11:12:43

我认为,自查询就是一种嵌套调用的表现,通过LEFT关键字,可以发现s为主表,p为子表,通过关系s.pId=p.id可以发现,主表的pId对应着子表的id,这样一来,就可以发现每个子表的父类。

为什么会出现三个服装:老师代码第一行中写到

SELECT s.id,s.cateName AS sCateName,p.cateName AS pCateName

则表示在表中显示为:主表的id,主表的分类名称,子表的父类的分类名称(此处根据上面分析得来)

因此,会出现三个服装分类

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java数据库开发与实战应用2018版
  • 参与学习           人
  • 提交作业       277    份
  • 解答问题       4297    个

Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师