问题描述
- mysql中关于左连接,取出来的数据顺序和主表不一样
-
如题,楼主最近在跟着视频学习SQL语句,发送自己做出来的效果和老师不一样 如图
这时两张表,学生表和班级表
要求是查询班级一样的学生信息,查出左连接显示是这样的:
右连接显示这样
请问一下为什么左连接查询出来显示数据的顺序不是按照学生表的顺序来啊?学生表不是主表么?为什么我显示出来的itcast顺序完全乱了,而是按照后面右表的id顺序来排? 求求求,急求大神解疑
解决方案
这个结果就是这样的。因为你的左连接写的是pr_student表左连接pr_class表,那么pr_class 表必然在左边,那么排序也就按着pr_class这个表的id来排序
同理,右连接也是如此。如何排序主要看你写两个表的位置:A left join B 排序是BA
解决方案二:
我不是大神,我也没用过MySQL, 用过Oracle而已,还是基础。想问楼主的是,这个时候 如果删除prclass 表的数据 是不是会出错。
我的理解是 prstudent表的数据是参照class表的的数据的,所以会出现这样的情况。还请大神前来指教。谢谢
解决方案三:
个人感觉这排序应该是跟数据库的查询顺序有关系吧,再说顺序可以排啊
解决方案四:
如果想按指定的字段来排序,应该加ORDER BY吧?
时间: 2024-11-08 19:24:34