mysql从两个表中选择数据并统一排序
2012-03-16 12:51
302 查看
问题是这样的,我打算在一个表里获得与某一行记录相邻的两行,并且想通过union一起取出来,所以这么写:
select id,title from subjects where id>#some_id# order by id limit 1
union
select id,title from subjects where id<#some_id# order by id limit 1
但出现了错误提示“Incorrect usage of UNION and ORDER BY”。看来不能这么用union和order by,但这里确实是需要order by的。很快,我想到了一个变通的写法:
select * from (
select id,title from subjects where id>#some_id# order by id limit 1
) union
select id,title from subjects where id<#some_id# order by id limit 1
从经验上说,第二个子句该不会被union影响,可以用order by。于是把第一个子句包在一个括号里,这下应该就可以了。可是还是有错误,提示“ Every derived table must have its own alias”。这里的提示是需要给我们括号里面生成的临时表取一个别名,这个好办多了。于是改为:
select * from (
select id,title from subjects where id>#some_id# order by id limit 1
) as t1 union
select id,title from subjects where id<#some_id# order by id limit 1
原文出处:http://www.blogkid.net/archives/2013.html
select id,title from subjects where id>#some_id# order by id limit 1
union
select id,title from subjects where id<#some_id# order by id limit 1
但出现了错误提示“Incorrect usage of UNION and ORDER BY”。看来不能这么用union和order by,但这里确实是需要order by的。很快,我想到了一个变通的写法:
select * from (
select id,title from subjects where id>#some_id# order by id limit 1
) union
select id,title from subjects where id<#some_id# order by id limit 1
从经验上说,第二个子句该不会被union影响,可以用order by。于是把第一个子句包在一个括号里,这下应该就可以了。可是还是有错误,提示“ Every derived table must have its own alias”。这里的提示是需要给我们括号里面生成的临时表取一个别名,这个好办多了。于是改为:
select * from (
select id,title from subjects where id>#some_id# order by id limit 1
) as t1 union
select id,title from subjects where id<#some_id# order by id limit 1
原文出处:http://www.blogkid.net/archives/2013.html
相关文章推荐
- 经典排序算法----选择排序算法及交换两个数据的正确实现
- 白话经典算法系列之四 直接选择排序及交换两个数据的正确实现
- mysql选择上一条、下一条数据记录,排序上移、下移、置顶
- mysql group_concat 分组,多字段统一排序及输出数据到java
- mysql选择上一条、下一条数据记录,排序上移、下移、置顶
- mysql选择上一条、下一条数据记录,排序上移、下移、置顶
- mysql---数据排序检索
- mysql排序,可以对统计的数据进行排序
- 关于mysql中数据引擎的选择
- Mysql数据引擎的选择
- mysql order by 排序 varchar 类型数据
- mysql update 两个表关联{两个关联表如何更新其中一个表的数据}
- 选择合适的 MySQL 布尔数据类型
- MySQL中的数据类型的选择
- MySQL 两个数据库表中合并数据
- MySQL分组排序查前N条数据
- MySQL从无关联的两个或多个表中查询数据,列转行等
- mysql中按in中的数据排序
- MySql数据引擎简介与选择方法
- mysql 数据类型选择