现有表A,表B,表C,还有code表
A表和B表都有id做为主键,C表为A表和B表的关联表,每个A的id和B的id再根据code表中某一个code对应的值(可以为多个)对应一条数据
要求最终结果为A表中的所有数据同时包括code表相应code所对应的值所对应的数据
也就是说code表中的某code所对应的值在查询结果中是个字段名,其对应的数据是对应C表中的数据
先谢谢大家了

解决方案 »

  1.   

     (不要高估你的汉语表达能力或者我的汉语理解能力)
       建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
       参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
       
       1. 你的 create table xxx .. 语句
       2. 你的 insert into xxx ... 语句
       3. 结果是什么样,(并给以简单的算法描述)
       4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
       
       这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。   
      

  2.   

    贴建表及插入记录的SQL,及要求结果出来看看
      

  3.   


    code表
    CREATE TABLE `code` (
      `CD_NUMBER` varchar(10) NOT NULL DEFAULT '' ,
      `PRO_ID` char(10) NOT NULL DEFAULT '0' ,
      `CD_VALUE` varchar(10) NOT NULL DEFAULT '' ,
      `CD_NAME` varchar(50) NOT NULL DEFAULT '',
      PRIMARY KEY (`CD_NUMBER`,`PRO_ID`,`CD_VALUE`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `code` (`CD_NUMBER`, `PRO_ID`, `CD_VALUE`, `CD_NAME`) values('SIK000001','10100001','1','WINDOWS');
    insert into `code` (`CD_NUMBER`, `PRO_ID`, `CD_VALUE`, `CD_NAME`) values('SIK000001','10100001','2','LINUX');
    insert into `code` (`CD_NUMBER`, `PRO_ID`, `CD_VALUE`, `CD_NAME`) values('SIK000001','10100001','3','MAC');C表
    CREATE TABLE `si_peibu_link` (
      `SI_NUMBER` int(11) NOT NULL ,
      `CD_NUMBER` char(10) NOT NULL,
      `CHECK_FLG` char(1) DEFAULT NULL ,
      `PEIBU_DATE` date DEFAULT NULL ,
      `SHIJI_PEIBU_DATE` date DEFAULT NULL ,
      PRIMARY KEY (`SI_NUMBER`,`SHIJI_PEIBU_DATE`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;B表
    CREATE TABLE `si_lib_link` (
      `KEY_NUMBER` int(11) NOT NULL ,
      `LIB_NUMBER` int(11) NOT NULL,
      `SI_NUMBER` int(11) NOT NULL ,
      `PRO_ID` varchar(10) NOT NULL ,
      PRIMARY KEY (`KEY_NUMBER`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;A表
    CREATE TABLE `si_lib_hao` (
      `LIB_NUMBER` int(11) NOT NULL ,
      `MASTER_NUMBER` int(11) DEFAULT NULL ,
      `PRO_ID` varchar(10) NOT NULL ,
      `LIB_JTI` varchar(10) DEFAULT NULL ,
      `REVISIION_VERSION` varchar(10) DEFAULT NULL ,
      PRIMARY KEY (`LIB_NUMBER`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    查询结果为:
    LIB_NUMBER   MASTER_NUMBER   PRO_ID   LIB_JTI   REVISIION_VERSION   WINDOWS   LINUX   MAC
    10100001     10100001        10100001   3             3123           12/1      12/2   12/3
    也就是根据A表的LIB_NUMBER查到B表的SI_NUMBER,再根据SI_NUMBER和CD_NUMBER查到相应日期
      

  4.   


    我的mysql版本是5.1,结构已经贴出来了,先谢谢啦!