2 u012035592 u012035592 于 2016.03.25 10:40 提问

mysql中关于左连接,取出来的数据顺序和主表不一样

如题,楼主最近在跟着视频学习SQL语句,发送自己做出来的效果和老师不一样 如图
这时两张表,学生表和班级表图片说明
要求是查询班级一样的学生信息,查出左连接显示是这样的:图片说明
右连接显示这样图片说明
请问一下为什么左连接查询出来显示数据的顺序不是按照学生表的顺序来啊?学生表不是主表么?为什么我显示出来的itcast顺序完全乱了,而是按照后面右表的id顺序来排? 求求求,急求大神解疑

4个回答

clunatic
clunatic   2016.03.25 11:20

这个结果就是这样的。因为你的左连接写的是pr_student表左连接pr_class表,那么pr_class 表必然在左边,那么排序也就按着pr_class这个表的id来排序
同理,右连接也是如此。如何排序主要看你写两个表的位置:A left join B 排序是BA

clunatic
clunatic 回复河西的核桃树: 右表,这样是参照右表的顺序来查询左表数据
一年多之前 回复
clunatic
clunatic 回复河西的核桃树: 右表,这样是参照右表的顺序来查询左表数据
一年多之前 回复
u012035592
u012035592 好像有点明白了,意思是说 左表 left join 右表 ,顺序是按照右表来是吗?那这么查询的话 主表是左表还是右表?
一年多之前 回复
u010087322
u010087322   2016.03.25 11:15

我不是大神,我也没用过MySQL, 用过Oracle而已,还是基础。想问楼主的是,这个时候 如果删除prclass 表的数据 是不是会出错。
我的理解是 prstudent表的数据是参照class表的的数据的,所以会出现这样的情况。还请大神前来指教。谢谢

u012035592
u012035592 没太理解应该怎么删除class表的数据。。。所以这个问题不造怎么回答
一年多之前 回复
ivan2306
ivan2306   2016.03.25 11:21

个人感觉这排序应该是跟数据库的查询顺序有关系吧,再说顺序可以排啊

u012921592
u012921592   2016.03.28 09:52

如果想按指定的字段来排序,应该加ORDER BY吧?

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!