2来自同一个表的SQL查询

时间:2010-07-20 20:22:30

标签: php sql mysql union

我希望从表中获取第一行(按date降序排序),然后获取其余行(按last_name升序排序)。我假设我需要使用UNION语句,但是我无法让它工作。

提前致谢

3 个答案:

答案 0 :(得分:2)

为什么不运行两个查询?这似乎是一个明显的答案。

并非每项任务都需要在单个查询中完成。您是否也在一个语句中编写了所有PHP代码? ; - )

答案 1 :(得分:2)

假设使用MySQL,您可以使用:

 (SELECT t.*
    FROM TABLE t
ORDER BY t.date DESC
   LIMIT 1)
UNION 
 (SELECT t.*
    FROM TABLE t
ORDER BY t.last_name)

您需要将语句封装在括号中以应用ORDER BY - 否则,ORDER BY将应用于UNION之后的结果集。

答案 2 :(得分:2)

SELECT *
FROM yourtable
ORDER BY
    id = (SELECT id FROM yourtable ORDER BY date DESC LIMIT 1) DESC,
    last_name