数据库联表查询,用第二张表的独有字段排序,为何会乱序?

记一个问题,有缘再解释。解决办法其实就是order by指明唯一确定的字段 如order by id,或者改为右链接或者第二张表作为主表。此处是想知道MYSQL底层排序原理,为何会出现1的情况。

1.数据库联表查询,用第二张表的独有字段排序时,乱序

SELECT
	id,
	name,
	type,
	cts.hot 
FROM
	CT ct
	LEFT JOIN CTS cts ON cts.topic_id = ct.id 
ORDER BY
	cts.hot ASC

 当排序的条件一样时,为何会以此种顺序显示,且不会出现多次搜索排序结果不一致的情况,说明时一种内在的默认排序规则,那是什么规则呢?磁盘读取顺序?

如果改为右链接或者第二张表作为主表。则按照id顺序排列。

SELECT
	id,
	name,
	type,
	cts.hot 
FROM
	CT ct
	RIGHT JOIN CTS cts ON cts.topic_id = ct.id 
ORDER BY
	cts.hot ASC

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值