有一张表 :id   时间   地区   价格
1    2001   上海    52    2001   上海    5 2    2001   山东    63    2002   上海    84    2002   山东    97    2003   山东    108    2003   上海    空想将它扫描出来放在前台页面成这样
时间   上海   山东
2001    5       6
2002    8       9
2003            10
sql数据库

解决方案 »

  1.   


    CREATE TABLE `mytable` (
      id int,
      时间 varchar(4),
      地区 varchar(50),
      价格 decimal
    );
    insert into mytable 
    select 1,'2001','上海',    5
    union all
    select 2,'2001','上海',    5 
    union all
    select 2,'2001','山东',    6
    union all
    select 3,'2002','上海',    8 
    union all
    select 4,'2002','山东',    9
    union all
    select 7,'2003','山东',    10
    union all
    select 8,'2003','上海',    null;select * from mytable;select 时间,
    ( case 地区  when '上海' then 价格 else null end)  as '上海',
    ( case 地区  when '山东' then 价格 else null end)  as '山东'
    from mytable
    group by 时间;
      

  2.   

    $rs = mysql_query('select * from tbl_name');
    while($r = mysql_fetch_assoc($rs)) {
      $res[$r['时间']][$r['地区']] = $r['价格'];
    }
    $t = array_keys(current($res));
    echo "\t" . join("\t", $t) . "\n";
    foreach($res as $k=>$r) {
      echo $k;
      foreach($t as $v) echo "\t{$r[$v]} ";
      echo "\n";
    上海 山东
    2001 5  6 
    2002 8  9 
    2003   10 
      

  3.   

    参考这个帖子第4种方法http://www.cnblogs.com/lhj588/archive/2012/06/15/2550392.html