SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM users where exists(select 1 from friend where ((user_id=1 and users.user_id=friend.user_friend_id) or (user_friend_id=1 and users.user_id=friend.user_id)) and state=1)) a where ROWNUM<=10) where RN>0
上面这个语句,我想要再加一个条件,就是在friend表中按时间查询,但是我加上之后老是报错,我是加在state=1的后面order by f_time desc,我也在别的地方加但就是不对,我想问一下应该怎么写呢?
上面这个语句,我想要再加一个条件,就是在friend表中按时间查询,但是我加上之后老是报错,我是加在state=1的后面order by f_time desc,我也在别的地方加但就是不对,我想问一下应该怎么写呢?
解决方案 »
- oracle 事物问题
- 怎么能查到一段时间内对某一个表都做了哪些操作?在线等
- ORACLE表的字段名允许有符号“.”么?
- 求助
- 如何把oracle 10g客户端的界面全换英文的??
- 请问在oracle中如何创建数据库??
- 从oracle8导出,到oracle9导入,中文变乱码?
- oracle是用java写的吗?是不是比较慢啊?我用php连oracle觉得比连mysql慢,是我oracle没配置好,还是oracle确实比较慢?
- PROC/C++ SAMPLE CODE的问题(急)
- sql查询合计横排
- 如何判断dblink是否是连接状态的,是的话关闭,不是就打开呢?
- 关于导入导出数据,涉及表空间的问题
SELECT * FROM (
SELECT A.*, ROWNUM RN FROM (
SELECT * FROM users where exists(
select 1 from friend
where (
(user_id=1 and users.user_id=friend.user_friend_id)
or
(user_friend_id=1 and users.user_id=friend.user_id)
)
and state=1
)
order by f_time desc --加在这里,前提是f_time字段存在于users表中
) a
where ROWNUM<=10
)
where RN>0
--注意:friend表中按时间f_time查询,也许你错了,因为你外层是在users表中查询的,采用exists操作,
--这样的话对于内层friend表的查询就不需要再排序了,
--如我上面添加的,可能是要对users中的字段进行排序
在exists子句中不能排序,因为排序也没用,exists只关心存在还是不存在,不关心顺序
你的数据全是从user表中查询的 friend表只是一个条件 怎么可能通过friend表中的某个字段排序呢?
你能不能简单的列出几条数据来说明一下
感觉你的需求是矛盾的