那用两个查询控件吧
query1.close;
query1.sql.clear;
query1.sql.add('select * from a');
query1.open;
for i:=1 to query1.recordcount do
begin
  query2.close;
  query2.sql.clear;
  query2.sql.add('select * from b');
  query2.sql.add('where id='''+query1.fieldvalues['id']+'''');
  query2.open;
....
end;

解决方案 »

  1.   

    1,Delphi的Tquery组件实现一个查询后,再用LOCATE函数2,在第一个TQuery中用:create tmpTable as select * from 创建一个临时表tmpTable,
       然后在tmpTable中再次进行查询。3,考虑在存储过程中实现。
      

  2.   

    如果你的表列比较多,可以考虑用将第一个Tquery连接的数据集(或者表)作成一个视图,然后
    第二个查询直接从连接视图即可!