SQL分页查询+Inner Join
2011-02-28 17:46
519 查看
使用select top not in和inner join语句,因为一条记录(房源)可能对应多条记录(多个用户),所以出现查询结果重复的现象。
原查询语句如下:
Select top perPage From Table1 Inner Join Table2 On ... Where ... And ID not in (select top perPage * (page - 1) ID From Table1 Inner Join Table2 On ... Where ... Order By ...) Order By ...
Group By 添加在Where后面无效
改为:
Select ... From Table1 Where ID in(Select top perPage ID From Table1 Inner Join Table2 On ... Where ... And ID not in (select top perPage * (page - 1) ID From Table1 Inner Join Table2 On ... Where ... Group By ID Order By ...) Group By ID Order By ...
也可以使用临时表或rownumber, sql语句看起来比较清晰。
原查询语句如下:
Select top perPage From Table1 Inner Join Table2 On ... Where ... And ID not in (select top perPage * (page - 1) ID From Table1 Inner Join Table2 On ... Where ... Order By ...) Order By ...
Group By 添加在Where后面无效
改为:
Select ... From Table1 Where ID in(Select top perPage ID From Table1 Inner Join Table2 On ... Where ... And ID not in (select top perPage * (page - 1) ID From Table1 Inner Join Table2 On ... Where ... Group By ID Order By ...) Group By ID Order By ...
也可以使用临时表或rownumber, sql语句看起来比较清晰。
相关文章推荐
- sql inner join 连接查询
- SQL中的join连接查询(left join/right join/inner join)
- 使用INNER JOIN ON 多表关联查询,获取指定用户下指定权限的资源SQL:
- SQL多表查询left join/right join/inner join(join)
- 2个或多个datable类似于sql inner join 合并查询
- 走向面试之数据库基础:二、SQL进阶之case、子查询、分页、join与视图
- 走向面试之数据库基础:二、SQL进阶之case、子查询、分页、join与视图
- sql的inner join/left join/right join/full join
- sql语法:inner join on, left join on, right join on详细使用方法
- ORACLE分页查询SQL语法——最高效的分页
- SQL关联查询 直接join 和子查询的区别
- SQL优化-索引、查询优化及分页算法方案
- SqlServer2005高效分页sql查询语句
- sql 一对多查询分页
- 黑马程序员_第十一篇:sql中join,子查询,row_number
- 解析sql语句中left_join、inner_join中的on与where的区别
- 三种SQL分页查询的存储过程
- SQL Server Top Clause 分页查询 Paging
- Oracle实现分页查询的SQL语法汇总
- mybatis的分页插件pagehelper-fix使用、数据库分页查询模板sql、总结mysql与oracle语句的区别