sql语句中不能直接使用delphi中的控件,而且q1,和q2是query1的什么字段,参数还是变量.你可以使用这样的方式
先将query1中的查询放入暂时的tese表中
with query1 do
begin
  close;
  sql.clear;
  sql.add('insert into tese select  ..........');//query1中的查询语句
  execsql;
end;
然后再用query2查询
with query2 do
begin
  close;
  sql.add('selecet b1,b2,q1,q2');
  sql.add('from bb,tese where bb.b1=tese.q1');
  open;
end;

解决方案 »

  1.   

    把QUERY1的查询结果用另一个表存起来,然后用QUERY2查询那个新表
      

  2.   

    老大,你知道在select语句中
    有多个表中选择字段时,
    要在相应的字段名之前加上他的表名
    例如:
      with query2 do
       begin
        close;
        sql.add('selecet bb.b1,bb.b2,query1.q1,query1.q2');
        sql.add('from bb inner join query1 on bb.b1=query1.q1');
        open;
       end
    老兄试试看阿,不行再问我!
      

  3.   

    是不是select写错了阿
    我考的是你的,
    是不是这问题阿
      

  4.   

    我认为Query结果也是一张表,所以使用了以上写法,但Delphi不认,曾想过把查询结果先以临时表形式暂存到本地机上,但惶麻烦,遂向各路高手请教是否还有更好的办法.另,我在写程序时,SQL中是有表名,在发此贴时,漏掉了,错误不在这里