希望高人指点 谢谢,请问这样的多次查询如何处理?很着急!!!希望得到大家指点!!!

请问这样的多次查询如何处理?很着急!!!希望得到大家指点!!! - 故障解答 - 电脑教程网

请问这样的多次查询如何处理?很着急!!!希望得到大家指点!!!

日期:2007-08-20   荐:
请问这样的多次查询如何处理?很着急!!!希望得到大家指点!!!Foxpro数据库两个表:Table1(SEQ_CODE,Name……) Table2(SEQ_CODE, Theme)我想实现下面的查询:Select * From Table1 Where SEQ_CODE In (Select Distinct SEQ_CODE From Table2 Where Theme Like 条件1 or Theme Like 条件2 or ……)其中内层查询的“Or”条件很多,但是ADOQuery的SQL命令长度有限制,有时Theme的条件有上万条,所以这样写的SQL长度超过限制。于是我想分几次查询,然后将查询结果合并。比如Theme有三个条件(每次的查询条件多少是不固定的,我这里就是举一个例子):1、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件1;2、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件2;3、查询 Select Distinct SEQ_CODE From Table2 Where Theme Like 条件3;上面的三次查询分别返回三个数据集,4、将这三个数据集合并。5、最后作最外层查询:Select * From Table1 Where SEQ_CODE In 刚才被合并的数据集;这个查询的过程我想我已经说得很明白了,但是我不知道这样应该如何实现!!我现在的控件有ADOConnection1 ADOQuery1 DataSource1 DBGrid1(最后查询的结果显示在这里)。请问是不是还要加什么别的控件才能实现上述的查询过程?具体如何实现?还有就是你们知道SQL的长度限制是多少吗???希望回答问题的朋友说的详细一些,不要只说一些模棱两可的话,问题一解决我马上给分!!分数少了点大家见谅!!谢谢了!!!!!1、创建一个临时表#Temp;2、Insert into #Temp From (Select Distinct SEQ_CODE From Table2 Where Theme Like 条件1);Insert into #Temp From (Select Distinct SEQ_CODE From Table2 Where Theme Like 条件2);Insert into #Temp From (Select Distinct SEQ_CODE From Table2 Where Theme Like 条件3);3、Select * From #Temp Where ....大致如此 用临时表,LEFT JOIN 或者UNION ALL谢谢两位大哥,创建临时表确实是个不错的主意!还有一点我想问一下,我的是Foxpro数据库,(.DBF的文件)用SQL命令创建临时表的时候遇到了一个问题,ADOQuery1.Close;ADOQuery1.SQL.Clear;ADOQuery1.SQL.Add('Creat Table #Temp(SEQ_CODE Character(30))');这样创建后的临时表的位置总是在我的程序的那个文件夹下,而没有被保存在我的数据库文件夹下,于是再写SQL命令涉及到临时表的时候就出错了,这个怎么解决?也就是说我创建的临时表怎样才能被保存到我的数据库文件夹下呢?再来帮忙看看!!!谢谢!chenylin(陈SIR) 你那样写的SQL好像不对啊??!!
标签: