数据库中有两个表 table1和table2   其中table1的name字段 对应着 table2的name字段 table1 中只有id和name两个字段  table2中的字段有id  name age sex  grade 字段 目的是遍历table1和table2  然后按照姓名name分类 全部显示出来每个学生的信息

解决方案 »

  1.   

    直接關聯兩表left join 然後按name分類就可以了。
    還有:table1 有id 和name,table2也有id 和name,既然表名都有name了,遍歷什麼呢???
    建議你貼出兩個表的數據,然後把具體需求結果寫上。
      

  2.   

    直接用sql组合出数据更方便写,如果是完全对应,就用 inner join,其他的left join,right join根据情况用
      

  3.   

    table1.First;
     // while not table1.Eof do
     for i:=1 to table1.RecordCount do
    begin
     table2.First;
    for j:=1 to table2.RecordCount do
    if tabel2.FieldByName('name').AsString = tabel1.FieldByName('name').AsString then
      begin
        Arr[1]:=table2.FieldByName('name').AsString;
        Arr[2]:=table2.FieldByName('age').AsString;
        Arr[3]:=table2.FieldByName('sex').AsString;
        Arr[4]:=table2.FieldByName('grade').AsString;
        test(j);
       table2.Next;
     end;
    table1.Next;
    end;我这样写的运行结果是只显示出来了table1中的最后一个name对应的table2中的信息 帮我看看这样写错在哪里?为什么没有全部都显示出来 
    我想要把table1中的所有的name分别对应的tabel2中的信息都显示出来 该如何写 ?其中 function test(i:integer):string;  test是我自定义的带有一个参数的函数 是用来显示的
      

  4.   

    +_+  不是用SQL语句 请帮我看看该如何修改?
      

  5.   

    關聯好SQL後,直接再循環這個數據集就OK了
      

  6.   

    SQL关联好了 按照我上面写的循环 还是不正确哦 请帮我看看该如何修改?
      

  7.   

    我想如果要遍历,实现查询后,在DELPHI中用DataSet的First、Next等方法,循环方式遍历。查询语句 myquery.SQL.Add('select t1.name, t2.age, t2.sex, t2.grade
    from t1 left join t2 on t1.name = t2.name group by t1.name');请问这句应该放在程序的什么地方呢? 
      

  8.   

    只要记住以下几行Delphi数据库编程的必杀句,走遍天下都不怕
    WITH MyQuery Do
    BEGIN
      CLOSE;
      CLEAR;
      SQL.TEXT:='select t1.name, t2.age, t2.sex......';
      OPEN;
      WHILE NOT EOF DO
      BEGIN
         XXX=FIELDBYNAME('字段名').ASSTRING;
      END;
    END;
     
      

  9.   

    類似這樣。
      cbb_cb.Properties.Items.Clear;
      qry_BaseTemp.Close;
      qry_BaseTemp.SQL.Clear;
      qry_BaseTemp.SQL.Add( ' select t1.name, t2.age, t2.sex......' );
      qry_BaseTemp.Open;
      while not qry_BaseTemp.Eof do
      begin
        cbb_cb.Properties.Items.Add(VarToStr(qry_BaseTemp.FieldValues['CB']));
        qry_BaseTemp.Next;
      end;
      

  10.   

    还是不行啊  运行结果还是只显示出来了table1中的最后一个name对应的table2中的信息 怎么回事哦 
      

  11.   

    内容全部显示出来了 还有一个问题请教大家 canvas 的textout 输出前如何分组排序? 如何对内容进行排序?