比如我有两个表:
A 表为用户信息,字段有A1、A2、A3、A4、A5等;
B 表为用户交费信息,字段有B1、B2、B3、B4、B5等;现在我有一个DBGrid,需要集中显示A1、A2、A3、B2、B3、B4.请问该如何处理?谢谢!

解决方案 »

  1.   

    一般A和B两要有一定的关系,否则这样做意义不是很大假如A1和B1是两表关联字段;
    用Query或ADOQuery等支持SQL组件;
    Query.Close;
    Query.Sql.Text:='select A1、A2、A3、B2、B3、B4 from a,b where a.a1=b.b1');
    Query.Open;设置好运行环境,就可以了
      

  2.   

    select A.A2,A.A3,A.A4,B.B1,B.B2,B.B3 where A.A1=B.B1 //前提是你的两个表能过互相关联!
    A表中有:用户编号A1
    B表中也必须有 用户编号B1
    根据编号连接
      

  3.   

    select A.A2,A.A3,A.A4,B.B1,B.B2,B.B3 FROM A,B where A.A1=B.B1 //前提是你的两个表能过互相关联!
    A表中有:用户编号A1
    B表中也必须有 用户编号B1
    根据编号连接
      

  4.   

    假如A1和B1是两表关联字段;
    用Query或ADOQuery等支持SQL组件;
    Query.Close;
    Query.Sql.Text:='select a.A1、a.A2、a.A3、b.B2、b.B3、b.B4 from a,b where a.a1=b.b1');
    Query.Open;
      

  5.   

    Query.Close;
    Query.Clear;//这里少了一句!!!!!!!!!!!1
    Query.Sql.Text:='select A1、A2、A3、B2、B3、B4 from a,b where a.a1=b.b1';
    Query.Open;
    或者在设计时定义
    Query.Sql.Text:='select a.*,b.* from a,b where a.a1=b.b1';
    然后双击DBGrid,会出现一对话框,你想怎样改都行。
      

  6.   

    对。通过一定的关系可以相联系的表可以通过 sql的方法显示在同一数据栅格中。
      

  7.   

    谢谢!这个办法不错。select A.A2,A.A3,A.A4,B.B1,B.B2,B.B3 where A.A1=B.B1 不过我想要这个结果的 B.B2=xxx 部分,SQL语句该怎么写?
    另外数据库较大,如何分页在DBGrid中显示(比如每页只显示20套结果)?谢谢了!
      

  8.   

    select A.A2,A.A3,A.A4,B.B1,B.B2,B.B3 where A.A1=B.B1 and B.B2=xxx 
    要实现分页在DBGrid中显示,就要用上面跟你讲的方法:
    Query.Sql.Text:='select a.*,b.* from a,b where a.a1=b.b1';
    多个DBGrid连在一个Query,然后双击DBGrid,会出现一对话框,你想怎样改都行。
      

  9.   

    Query.Sql.Text:='select A1、A2、A3、B2、B3、B4 from a,b where a.a1=b.b1 and B2=100');
      

  10.   


    select A.A1,A.A2,A.A3,A.A4,B.B1,B.B2,B.B3  from a,b where A.A1=B.B1 and B.B2=xxx 
    要分页吗?
    可以考虑一下查询到记录总数,如将第一页为1-20条记录进行显示,第二页从21-40进行显示
      

  11.   

    如果你的AB表中A1 与 B1为相同的你就可以用
    with query do
    begin
      close;
      sql.clear;
      sql.add('select * from a,b where a1 = b1');
      open;
    end;
    就可以了
    然后把DBGrid的数据指向该Query就可以了