问个简单的SQL查询
数据表dt
ID 名 类别
id name class
1 a c1
2 b c1
3 c c3
4 d c4
5 6 c1
7 j c2
10 k c1
. . ....
网页里面 想做两个连接 同类别的 一个是 [上一篇文章] 一个是 [下一篇文章]
例如:
查询某一ID的时候
select * from dt where id=2 and class=c1
同时想得到
下一个 同类别C1的id 上一个 同类别C1的id
SQL语句如何写?分几步写?如何实现?高手指条明路吧。迷惘中。。。
------解决方案--------------------select top 1 * from dt where class = 'c1 ' and id > 2 下一个
select top 1 * from dt where class = 'c1 ' and id < 2 desc 上一个
------解决方案--------------------另外……如果你只是要做个上一篇下一篇的连接,不需要select *,你需要的只是一个id。
select top 1 id from...就可以了,这样效率高。
------解决方案--------------------select top 1 a.id from dt a,(select id from dt where id=2 and class= 'c1 ') b
where a.class= 'c1 'and a.id <b.id
order by a.id desc
--上一个类别id
select top 1 a.id from dt a,(select id from dt where id=2 and class= 'c1 ') b
where a.class= 'c1 'and a.id> b.id
order by a.id asc
--下一个类别id
--常量2和 'c1 '可以在程序中用变量代替