【问题标题】:Sorting using ORDER BY on a JOIN query在 JOIN 查询上使用 ORDER BY 进行排序
【发布时间】:2012-09-19 04:59:05
【问题描述】:

我正在尝试使用ORDER BY 对查询进行排序,但它声称存在语法错误。在尝试排序之前,我的查询如下所示:

SELECT u.*, s.*
FROM bands u
inner join statuses s on u.status_id = s.id
WHERE u.status_id = 1
LIMIT {$startpoint}, {$limit}

我试过像这样添加ORDER BY,但似乎不正确:

SELECT u.*, s.*
FROM bands u
inner join statuses s on u.status_id = s.id
WHERE u.status_id = 1
LIMIT {$startpoint}, {$limit} ORDER BY u.status_id

如何在此查询中正确使用ORDER BY

【问题讨论】:

    标签: mysql sql join sql-order-by


    【解决方案1】:

    ORDER BY 子句位于LIMIT 之前

    SELECT u.*, s.*
    FROM bands u
    inner join statuses s on u.status_id = s.id
    WHERE u.status_id = 1
    ORDER BY u.status_id
    LIMIT {$startpoint}, {$limit} 
    

    【讨论】:

    • 有时最简单的事情是最难弄清楚的 :) 感谢您的快速帮助。
    • 嘿嘿你欢迎@Riboflavin
    【解决方案2】:

    你几乎就在那里 - 你只是把 ORDER 和 LIMIT 弄错了:

    SELECT 
        u.*, s.* 
    FROM 
        bands u inner join statuses s on u.status_id = s.id 
    WHERE 
        u.status_id = 1 
    ORDER BY u.status_id
    LIMIT {$startpoint}, {$limit} 
    

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 2011-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-03-02
      • 2023-04-02
      相关资源
      最近更新 更多