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

  • Post author:
  • Post category:其他


记一个问题,有缘再解释。解决办法其实就是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



版权声明:本文为qq_41029282原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。