如何编写ORDER BY子句以首先返回两个表中的条目的结果?

时间:2011-03-01 19:07:58

标签: mysql sql

我有两张桌子:

表格:广告 字段: ID,价格

表:汽车 字段: id,ad_id,年

我希望能够通过cars.year订购结果 - 但并非所有结果都会在汽车表中有条目,即某些结果可能只有广告中的条目。

目前没有参赛作品的结果首先由我的“按AS.,AS.,ads.price ASC订购”条款返回,我希望结果显示没有汽车参赛作品的结果。

我对这个ORDER BY子句有什么想法?

谢谢,

3 个答案:

答案 0 :(得分:1)

您可以使用类似于以下内容的ORDER BY子句:

ORDER BY cars.id IS NULL ASC, cars.year ASC, ads.price ASC

这将首先将cars.id不为空的行放置,按降序排序。然后是cars.id为空的行,也按降序排序。

我不清楚你的问题是什么订单,所以你可能需要稍微调整一下这个答案以满足你的需求。

答案 1 :(得分:0)

order by ifnull(year,'1/1/2099'), price

答案 2 :(得分:0)

使用两个选择命令..第一个选择具有条目的值并对它们进行排序..第二个选择没有条目的值并命令它们然后加入结果..