那方法确实笨了点,这样:
insert into table12 (...)
  Select ... from Table1 Inner Join Table3 

解决方案 »

  1.   

    在Delphi中引用SQL语句
    Close;
    SQL.Clear;
    SQL.Add('....');
    Open/ExecSQL;
      

  2.   

    ADOQuery1.Close;
    ADOQuery1.Sql.Clear;
    ADOQuery1.Sql.Add('insert into table12 (...) Select ... from Table1 Inner Join Table3 ');
    ADOQuery1.ExecSQL;
      

  3.   

    谢谢。但Insert Into 的语句必须是Table1 和Table2的字段、类型完全一致才行。
    我现在在做的是,只将Select 的结果集插入到Table2的部分字段中。
    Table1 A1, A2, A3, A4, A5.
    Table2 A1,A2,A3,A4,A5,A6,A7。
    敬请指点。
      

  4.   

    insert into table2(A1, A2, A3, A4, A5)
    select A1, A2, A3, A4, A5 from table1
      

  5.   

    adoquery1.close;
    adoquery1.text:='insert into table12 (A1,A2,A3,A4,A5)
      Select a.A1,a.A2,a.A3,b.A4,b.A5 from Table1 a Inner Join Table3 b On a.相關字段 = b.相關字段';
    adoquery1.ExecSQL;
      

  6.   

    非常感谢各位!
    最后一点了,
    Table1 A1,A2,A3,C6, C7.
    Table2 A1,A2,A3,A4,A5,A6,A7。
    已将Table2的A1,A2,A3,A4,A5都Insert了数据。
    A1,A2,A3是健值字段。现在要将另外的数据集的结果C6,C7来更改目标Table2的A6,A7键值相同的字段,请问怎样做?
    不好意思,结果有了以后马上给分。
      

  7.   

    update a
    set a.A6=b.C6,a.A7=b.C7
    from table2 a,tb b
    where a.A1=b.C1 and a.A2=b.C2 and a.A3=b.C3
      

  8.   

    LoveSQL:
    请问tb b的表达是不是Selectr 的结果? 这样写对不对?
    ADOQuery1.Close;
    ADOQuery1.Sql.Clear;
    ADOQuery1.Sql.Add('Update a');
    ADOQuery1.Sql.Add('Set a.A6=b.C6,a.A7=b.C7');
    ADOQuery1.Sql.Add('from table2 a,(Select A1,A2,A3,C6,C7 From Table1) B');
    ADOQuery1.ExecSql;