2 q1343454666 q1343454666 于 2015.07.14 14:07 提问

数据库 sql order问题
sql

两个表 c.price asc 和 b.addtime desc 或者 asc 好用 但是 c.price desc和 b.addtime desc或者 asc 都不好用
SELECT o.*,c.*,o.addtime as ordertime FROM orderin o INNER JOIN order_content c on o.content_id=c.id ORDER BY c.original_price DESC,o.addtime DESC LIMIT 0,10
这样 就不能查出addtime 的排序
但是,这样
SELECT o.*,c.*,o.addtime as ordertime FROM orderin o INNER JOIN order_content c on o.content_id=c.id ORDER BY original_price asc,o.addtime DESC LIMIT 0,10
都能查出来了
求大神指点

....

5个回答

strutce
strutce   Ds   Rxr 2015.07.14 14:15
已采纳

SELECT o.*,c.*,o.addtime as ordertime FROM orderin o INNER JOIN order_content c on o.content_id=c.id ORDER BY c.original_price DESC,o.addtime DESC LIMIT 0,10 你这是先根据价格降序(desc),价格相同时在根据时间降序
SELECT o.*,c.*,o.addtime as ordertime FROM orderin o INNER JOIN order_content c on o.content_id=c.id ORDER BY original_price asc,o.addtime DESC LIMIT 0,10 你这是先根据价格升序(asc),价格相同时在根据时间降序

要根据时间排序你要把时间放前价格放后

SELECT o.*,c.*,o.addtime as ordertime FROM orderin o INNER JOIN order_content c on o.content_id=c.id ORDER BY o.addtime DESC,original_price asc LIMIT 0,10

q1343454666
q1343454666 加Q1343454666
2 年多之前 回复
strutce
strutce 回复q1343454666: 这是你先根据价格排序,当价格一样了才会按时间来排的
2 年多之前 回复
q1343454666
q1343454666 两个表
2 年多之前 回复
strutce
strutce 回复q1343454666: 那我就不理解了,我写的语句回出错吗,排序都是那个写在前以他为主,后面的为辅(前面是相同结果的,在按后面的排序的)
2 年多之前 回复
q1343454666
q1343454666 是这样的 如果original_price 是asc 的话 那 addtime 无论是DESC还是ASC 都好用 但是 original_price 换成desc 的话 addtime无论是asc还是desc都查不出时间排序
2 年多之前 回复
strutce
strutce 回复q1343454666: 你是要问什么不是排序问题吗
2 年多之前 回复
q1343454666
q1343454666
2 年多之前 回复
strutce
strutce 你是要问什么不是排序问题吗
2 年多之前 回复
q1343454666
q1343454666 亲。 并不好使
2 年多之前 回复
q1343454666
q1343454666 我试试
2 年多之前 回复
qq_29811495
qq_29811495   2015.07.14 14:06

ID哈和。。。。。。。。

q1343454666
q1343454666   2015.07.14 14:08

什么??original_price asc,o.addtime DESC 这样可以

c.original_price DESC,o.addtime DESC
c.original_price DESC,o.addtime ASC

这样就不成

q1343454666
q1343454666 2楼补充、
2 年多之前 回复
q1343454666
q1343454666 2楼补充、
2 年多之前 回复
Tiger_Zhao
Tiger_Zhao   Rxr 2015.07.14 14:17

先做连接子查询,再来排序取10条

        SELECT *
          FROM (
                    SELECT o.*,c.*,o.addtime as ordertime 
                      FROM orderin o
                INNER JOIN order_content c
                        on o.content_id=c.id
               ) t
      ORDER BY original_price DESC, ordertime DESC
         LIMIT 0,10
q1343454666
q1343454666 t是什么意思
2 年多之前 回复
q1343454666
q1343454666 不好用
2 年多之前 回复
u013829202
u013829202   Rxr 2015.07.14 14:23

看了,这是一个升降的问题,怎么可能desc可以,asc不行的。 你的条件写错了一个是c.original_price 一个是original_price。认真点

q1343454666
q1343454666 跟这个没关系 我都试过了
2 年多之前 回复
q1343454666
q1343454666 亲,后来改了
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片