本帖最后由 business122 于 2012-04-20 09:27:23 编辑

解决方案 »

  1.   

    比如:
    A1 A2 A3   
     1 2 工资 
    结果是什么
      

  2.   

    嗯,可能刚我没表述清楚:A表是个定义表,B表是总表,我想的是根据A表里的A3字段的所有值譬如"工资" “奖金”等将B表里对应的字段名 工资  奖金 等 里面的内容取出来。
      

  3.   

    举例说明
    比如:
    A1 A2 A3
    1 2 工资
    结果是什么
      

  4.   


    ...着实不懂。我就是想写个存储过程,通过表A的定义将总表B里面的有用信息筛选出来填到一个新表C中...您问的结果是什么具体指?懂的有限,还望不吝赐教。谢谢!
      

  5.   

    提问有技巧的,要达到什么目的,用你的数据?
    A1 A2 A3
    1 2 工资
    select 工资 from b ?
      

  6.   

    猜 lz 要的是这个?
    mysql> select * from config;
    +----+----------+
    | id | name     |
    +----+----------+
    |  1 | salary   |
    |  2 | bonus    |
    |  3 | overtime |
    +----+----------+
    3 rows in set (0.00 sec)mysql> select * from data;
    +--------+-------+----------+
    | salary | bonus | overtime |
    +--------+-------+----------+
    |      1 |     2 |        4 |
    |      3 |     3 |        3 |
    +--------+-------+----------+
    2 rows in set (0.00 sec)mysql> select @sql := concat("select ", group_concat(name), " from data;")
        -> from config
        -> where id in (1, 2);
    +--------------------------------------------------------------+
    | @sql := concat("select ", group_concat(name), " from data;") |
    +--------------------------------------------------------------+
    | select salary,bonus from data;                               |
    +--------------------------------------------------------------+
    1 row in set (0.00 sec)mysql>
    mysql> prepare sp from @sql;
    Query OK, 0 rows affected (0.00 sec)
    Statement preparedmysql> execute sp;
    +--------+-------+
    | salary | bonus |
    +--------+-------+
    |      1 |     2 |
    |      3 |     3 |
    +--------+-------+
    2 rows in set (0.00 sec)mysql> drop prepare sp;
    Query OK, 0 rows affected (0.00 sec)
      

  7.   

    就是一个匹配问题吧。我现在纠结的就是A3字段是varchar类型的,那么怎样让这个varchar类型的字段的值作为能与B中的字段名(什么类型确实不懂)进行比较从而作为判断条件将B表中的能匹配的字段的内容选出?
      

  8.   

    http://blog.csdn.net/acmain_chm/article/details/4283943
    MySQL交叉表
    在某些数据库中有交叉表,但在MySQL中却没有这个功能,但网上看到有不少朋友想找出一个解决方法,特发贴集思广义。http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html?96198现整理解法如下:数据样本: create table tx(  id int primary key,  c1 c...
      

  9.   

    ...我要的是从data表转换成config表,压力山大。
      

  10.   

    自己解决了!分享一下部分代码:
    declare Ttype varchar(30);declare Tid int;declare Tmin int;declare Tmax int;select min(A1) into Tmin from A;select max(A1) into Tmax from A;while Tmin<=Tmax do   select A3 into Ttype from A where A1=Tmin;-- C表C2字段 类型名   select A1 into  Tid from A where A3=Tmin;-- C表C1字段 类型定义ID(来源A表)   set @Tsql=concat("insert into C(C1,C2) select ",Tid,",",Ttype," from B;");   prepare Ttidy from @Tsql;   execute Tidy;  -- C表插入数据;Tmin=Tmin+1;end while;