我有一个查询,我在其中对日期和时间列上的数据进行排序。我有五条记录,日期和时间相同。根据排序和主键,所有记录都很好。但是我添加的最后一条记录跳到了位置的顶部。我不知道为什么会这样。
我的查询是:
SELECT table1.* , table2.name AS name1, table2.date AS date1,
table2.start_time AS time1, table2.end_time AS time2
FROM table1 LEFT JOIN
table2
ON table2.id = table1.id1
WHERE table1.id2 = '604'
ORDER BY table1.date ASC, table1.start_time ASC
还附上了记录截图。最高记录有最新的id,但它是最重要的。图像中的所有这些记录都具有相同的日期和时间。
答案 0 :(得分:1)
我不是百分百肯定你为什么感到困惑。如果五行中的time
和id
列都具有相同的值,则可以任何顺序返回它们。
如果您还希望按order by
排序,请将其包含在ORDER BY table1.date ASC, table1.start_time ASC, table1.id
中:
order by
您似乎对order by
有一些“稳定”排序的概念。对于具有相同值的键,稳定排序是保持数据的原始排序的排序。但是,这在SQL中根本不可能,因为表表示无序集。没有property(x => x.MemberID).HasDatabaseGeneratedOption(
DatabaseGeneratedOption.None);
没有订购。