怎么做个2次查询?

littleriver 2002-11-01 01:40:32
比如我用adoquery执行了select * from table where ...语句得到了一个记录集,可是我想在这个记录集的基础上在执行一次查询,请问怎么办,可以吗?
...全文
21 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
warton 2002-11-04
  • 打赏
  • 举报
回复
对,用临时表!!
flashstar 2002-11-04
  • 打赏
  • 举报
回复
我也推荐用临时表会比较好一点。
wangxd 2002-11-04
  • 打赏
  • 举报
回复
用临时表也行。其实filter就不错
aboayan 2002-11-04
  • 打赏
  • 举报
回复
按Libran的方法完全可以完成一些复杂的过滤功能,怎么会不可以用呢?是不是你的条件设置有问题呀。而且告诉你这执行的速度比再次执行SQL语句要不知道快多少,你好好试试吧!
ilikeff8 2002-11-04
  • 打赏
  • 举报
回复
adoquery有filter的,还可以edit,也就是说aodtable可以做的adoquery几乎都能做
littleriver 2002-11-04
  • 打赏
  • 举报
回复
adoquery控件哪里有filter啊,adotable里面才有,而且也只能够用一次。。
littleriver 2002-11-04
  • 打赏
  • 举报
回复
大家大概没有理解我的意思。我第一次选出了一个记录集,在我还要进行查询之前,我并不知道我具体要在这个记录集上具体选出哪些记录,只能够通过其他的途径得到。。(比如说读文件。。。)只是可以肯定一定在这个记录集内部。然后我通过其他途径得到需要再次选择的记录集的条件后,想在前一个记录集的基础上进行查询,因为如果在重新从数据库里面进行查询的话会慢的,我只是想知道这个时候我该怎么做
shark_dim 2002-11-04
  • 打赏
  • 举报
回复
sql最好
select * from
(select * from tablename)
littleriver 2002-11-04
  • 打赏
  • 举报
回复
用二次查询的情况比如:我通过一个sql语句从一个比较大的表内得到了一个记录集,然后我有需要查询,但我知道这个记录集在已经查询了的记录集里面,如果我又通过一个sql语句连接到数据库去执行查询,速度必定会慢了很多,所以我就想在已经获得的记录集上执行查询。用临时表的方法还是执行了一次数据库的i/o操作,不会提高速度的。我用adoquery控件执行了查询后这个记录集已经存在与内存中了,在这个内存中的记录集上执行一次查询速度肯定会快的多把。。。
TR@SOE 2002-11-03
  • 打赏
  • 举报
回复
为什么需要二次查询?
zbc 2002-11-03
  • 打赏
  • 举报
回复
把你的第一句sql 嵌入第二句中即可,如下
select * from (select * from table where ...) a where 条件
littleriver 2002-11-01
  • 打赏
  • 举报
回复
大家可能没有理解我的意思啊,我的意思是query选择后返回了一个记录集,但是我由于某种需要然后在这个记录集的基础上再做一次查询,以上同志很多都是在原表上的二次查询,而我需要在query控件返回的记录集基础上再做一次查询。 Libran() ( ) 同志的方法好像是行不通的,你试过吗
child_bj 2002-11-01
  • 打赏
  • 举报
回复
最好是用SQL一次解决

实在不成,QUERY返回的是一个类似TABLE的表,可以对它的结果集再进行操作
Nepalon 2002-11-01
  • 打赏
  • 举报
回复
select a.单位, a.代码, b.姓名 from
(
select 学校 as 单位, 学校代码 as 代码 from school
where 学校代码 like '001%'
union
select 学院 as 单位, 学院代码 as 代码 from school
where 学院代码 like '001%'
) as a,
(
select 姓名 from student
) as b
order by 代码
winkiky 2002-11-01
  • 打赏
  • 举报
回复
select * from (select * from table1 where ...) where ...
lifuming 2002-11-01
  • 打赏
  • 举报
回复
xiaodongisme(散步的鱼) 的做法应该可以做到
Libran 2002-11-01
  • 打赏
  • 举报
回复
可以在adoquery->Filter中指定进一步查询条件,再adoquery->Filtered=true
xiaodongisme 2002-11-01
  • 打赏
  • 举报
回复
select dept_name from dept_table
where
dept_no in (select dept_no from dept_table2 where ...)

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧