如果数据库设计的不合理还望大神们多多指教。SELECT
e.EQUIPMENT_NAME,
d.INDICATORS_NAME,
a.MONITORING_VALUE,
a.DATA_TIME,
a.DATA_FROM,
b. NAME AS USER_NAME,
a.CREATE_TIME,
c. NAME AS CHANGE_USER_NAME,
a.CHANGE_TIME,
a.MONITOR_DATA_ID
FROM
TB_MONITOR_DATA a
LEFT JOIN SYS_USER b ON a.USER_ID = b.USER_ID
LEFT JOIN SYS_USER c ON a.CHANGE_USER_ID = c.USER_ID
LEFT JOIN TB_MONITORING_INDICATORS d
on a.INDICATORS_ID = d.INDICATORS_ID
left join TB_EQUIPMENT e
on a.EQUIPMENT_ID = e.EQUIPMENT_ID
where 1=1
and e.EQUIPMENT_TYPE_ID = '357418c31f4b4c24a0a98cf089a2d042'
and e.WORKSHOP_ID = '83c7b00092454dd79d4463bc60471ebf'执行上面的sql得到的结果
实际想得到的结果:
“指标1”,“指标2”分别作为列名,
具体这个列名 来自:
select  INDICATORS_ID,INDICATORS_CODE,INDICATORS_NAME from tb_monitoring_indicatorsž where EQUIPMENT_TYPE_ID='357418c31f4b4c24a0a98cf089a2d042'
参数 EQUIPMENT_TYPE_ID 和上面的sql中的EQUIPMENT_TYPE_ID一致。下面是全部的建表sql(跟帖中附带测试数据):
-- ----------------------------
-- Table structure for sys_user
-- ----------------------------
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
  `USER_ID` varchar(100) NOT NULL,
  `USERNAME` varchar(255) DEFAULT NULL,
  `PASSWORD` varchar(255) DEFAULT NULL,
  `NAME` varchar(255) DEFAULT NULL,
  `STATUS` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for tb_equipment
-- ----------------------------
DROP TABLE IF EXISTS `tb_equipment`;
CREATE TABLE `tb_equipment` (
  `EQUIPMENT_ID` varchar(100) NOT NULL,
  `EQUIPMENT_NAME` varchar(255) DEFAULT NULL COMMENT '设备名称',
  `EQUIPMENT_CODE` varchar(255) DEFAULT NULL COMMENT '设备编号',
  `EQUIPMENT_TYPE_ID` varchar(255) DEFAULT NULL COMMENT '设备类型',
  `WORKSHOP_ID` varchar(255) DEFAULT NULL COMMENT '车间',
  `MANUFACTURER` varchar(255) DEFAULT NULL COMMENT '生产厂家',
  `EQUIPMENT_MODEL` varchar(255) DEFAULT NULL COMMENT '设备型号',
  `INSTALLATION_DATE` varchar(255) DEFAULT NULL COMMENT '安装日期',
  `USER_ID` varchar(255) DEFAULT NULL COMMENT '创建人',
  `CREATE_TIME` varchar(255) DEFAULT NULL COMMENT '创建时间',
  `CHANGE_USER_ID` varchar(255) DEFAULT NULL COMMENT '修改人',
  `CHANGE_TIME` varchar(255) DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`EQUIPMENT_ID`),
  KEY `EQUIPMENT_TYPE_ID` (`EQUIPMENT_TYPE_ID`),
  KEY `USER_ID` (`USER_ID`),
  KEY `CHANGE_USER_ID` (`CHANGE_USER_ID`),
  KEY `WORKSHOP_ID` (`WORKSHOP_ID`),
  CONSTRAINT `tb_equipment_ibfk_1` FOREIGN KEY (`EQUIPMENT_TYPE_ID`) REFERENCES `tb_equipment_type` (`EQUIPMENT_TYPE_ID`),
  CONSTRAINT `tb_equipment_ibfk_3` FOREIGN KEY (`USER_ID`) REFERENCES `sys_user` (`USER_ID`),
  CONSTRAINT `tb_equipment_ibfk_4` FOREIGN KEY (`CHANGE_USER_ID`) REFERENCES `sys_user` (`USER_ID`),
  CONSTRAINT `tb_equipment_ibfk_5` FOREIGN KEY (`WORKSHOP_ID`) REFERENCES `tb_workshop` (`WORKSHOP_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for tb_equipment_type
-- ----------------------------
DROP TABLE IF EXISTS `tb_equipment_type`;
CREATE TABLE `tb_equipment_type` (
  `EQUIPMENT_TYPE_ID` varchar(100) NOT NULL,
  `EQUIPMENT_TYPE_NAME` varchar(255) DEFAULT NULL COMMENT '仪器类型名称',
  `EQUIPMENT_TYPE_CODE` varchar(255) DEFAULT NULL,
  `USER_ID` varchar(255) DEFAULT NULL COMMENT '创建人',
  `CREATE_TIME` varchar(255) DEFAULT NULL COMMENT '创建时间',
  `CHANGE_USER_ID` varchar(255) DEFAULT NULL,
  `CHANGE_TIME` varchar(255) DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`EQUIPMENT_TYPE_ID`),
  KEY `WORKSHOP_ID` (`EQUIPMENT_TYPE_CODE`),
  KEY `USER_ID` (`USER_ID`),
  KEY `CHANGE_USER_ID` (`CHANGE_USER_ID`),
  CONSTRAINT `tb_equipment_type_ibfk_2` FOREIGN KEY (`USER_ID`) REFERENCES `sys_user` (`USER_ID`),
  CONSTRAINT `tb_equipment_type_ibfk_3` FOREIGN KEY (`CHANGE_USER_ID`) REFERENCES `sys_user` (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for tb_monitoring_indicators
-- ----------------------------
DROP TABLE IF EXISTS `tb_monitoring_indicators`;
CREATE TABLE `tb_monitoring_indicators` (
  `INDICATORS_ID` varchar(100) NOT NULL,
  `INDICATORS_CODE` varchar(255) DEFAULT NULL COMMENT '指标代码',
  `INDICATORS_NAME` varchar(255) DEFAULT NULL COMMENT '指标名称',
  `USER_ID` varchar(255) DEFAULT NULL,
  `CHANGE_USER_ID` varchar(255) DEFAULT NULL,
  `CREATE_TIME` varchar(255) DEFAULT NULL,
  `CHANGE_TIME` varchar(255) DEFAULT NULL,
  `EQUIPMENT_TYPE_ID` varchar(100) DEFAULT NULL COMMENT '设备类型',
  PRIMARY KEY (`INDICATORS_ID`),
  KEY `EQUIPMENT_TYPE_ID` (`EQUIPMENT_TYPE_ID`),
  CONSTRAINT `tb_monitoring_indicators@009e@0090_ibfk_1` FOREIGN KEY (`EQUIPMENT_TYPE_ID`) REFERENCES `tb_equipment_type` (`EQUIPMENT_TYPE_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for tb_monitor_data
-- ----------------------------
DROP TABLE IF EXISTS `tb_monitor_data`;
CREATE TABLE `tb_monitor_data` (
  `MONITOR_DATA_ID` varchar(100) NOT NULL,
  `EQUIPMENT_ID` varchar(255) DEFAULT NULL COMMENT '设备',
  `INDICATORS_ID` varchar(255) DEFAULT NULL COMMENT '监测指标',
  `MONITORING_VALUE` float(11,0) NOT NULL COMMENT '监测值',
  `DATA_TIME` varchar(255) DEFAULT NULL COMMENT '数据时间',
  `DATA_FROM` varchar(255) DEFAULT NULL COMMENT '数据来源',
  `USER_ID` varchar(255) DEFAULT NULL COMMENT '创建人',
  `CREATE_TIME` varchar(255) DEFAULT NULL COMMENT '创建时间',
  `CHANGE_USER_ID` varchar(255) DEFAULT NULL COMMENT '修改人',
  `CHANGE_TIME` varchar(255) DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`MONITOR_DATA_ID`),
  KEY `EQUIPMENT_ID` (`EQUIPMENT_ID`),
  KEY `INDICATORS_ID` (`INDICATORS_ID`),
  CONSTRAINT `tb_monitor_data_ibfk_1` FOREIGN KEY (`EQUIPMENT_ID`) REFERENCES `tb_equipment` (`EQUIPMENT_ID`),
  CONSTRAINT `tb_monitor_data_ibfk_2` FOREIGN KEY (`INDICATORS_ID`) REFERENCES `tb_monitoring_indicatorsž` (`INDICATORS_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- ----------------------------
-- Table structure for tb_workshop
-- ----------------------------
DROP TABLE IF EXISTS `tb_workshop`;
CREATE TABLE `tb_workshop` (
  `WORKSHOP_ID` varchar(100) NOT NULL,
  `WORKSHOP_NAME` varchar(255) DEFAULT NULL COMMENT '车间名称',
  `WORKSHOP_CODE` varchar(255) DEFAULT NULL COMMENT '车间编码',
  `WORKSHOP_INDEX` varchar(255) DEFAULT NULL,
  `USER_ID` varchar(255) DEFAULT NULL COMMENT '创建人',
  `CREATE_TIME` varchar(255) DEFAULT NULL COMMENT '创建时间',
  `CHANGE_USER_ID` varchar(255) DEFAULT NULL,
  `CHANGE_TIME` varchar(255) DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`WORKSHOP_ID`),
  KEY `USER_ID` (`USER_ID`),
  KEY `CHANGE_USER_ID` (`CHANGE_USER_ID`),
  CONSTRAINT `tb_workshop_ibfk_1` FOREIGN KEY (`USER_ID`) REFERENCES `sys_user` (`USER_ID`),
  CONSTRAINT `tb_workshop_ibfk_2` FOREIGN KEY (`CHANGE_USER_ID`) REFERENCES `sys_user` (`USER_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

解决方案 »

  1.   

    -- ----------------------------
    -- Records of sys_user
    -- ----------------------------
    INSERT INTO `sys_user` VALUES ('1', 'admin', 'de41b7fb99201d8334c23c014db35ecd92df81bc', '系统管理员', '0');
    INSERT INTO `sys_user` VALUES ('d56949d95b39443fb7a599409bea48da', 'test', 'ee89026a6c5603c51b4504d218ac60f6874b7750', '测试账户', '0');
    -- ----------------------------
    -- Records of tb_equipment
    -- ----------------------------
    INSERT INTO `tb_equipment` VALUES ('0ea2c749f8334aedb4cd72e231bbddbe', '1#设备类型1', '1#SBLX1', 'a86e8154fd974a279ef35894def7b3b3', '8a094eaae6a949f6b7f080cc59d9f970', '安防', 'SBLX1', '2017-05-23', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:32:52', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:32:52');
    INSERT INTO `tb_equipment` VALUES ('2e7b7d3371e0430fb5b950569307b014', '2#湿度计', '2#SDJ', '9fb6e9b90c7b46c8854e03ac4cd92fe5', '72e5da370914401f92f97e0ddad72280', '安防', 'SDJ', '2017-05-15', 'd56949d95b39443fb7a599409bea48da', '2017-05-15 11:23:43', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:29:27');
    INSERT INTO `tb_equipment` VALUES ('55d31f4abb824134ab002332e66862f4', '2#温度计', '2#WDJ', '357418c31f4b4c24a0a98cf089a2d042', '83c7b00092454dd79d4463bc60471ebf', '安防', 'WDJ', '2017-05-22', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:17:04', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:17:04');
    INSERT INTO `tb_equipment` VALUES ('70b7d4a6063c4805a8953e09300bd2f7', '1#温度计', '1#WDJ', '357418c31f4b4c24a0a98cf089a2d042', '83c7b00092454dd79d4463bc60471ebf', '安防', 'WDJ', '2017-05-22', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:04:52', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:12:07');
    INSERT INTO `tb_equipment` VALUES ('e9ff76d171ad42b89917cf7e14bf556b', '1#湿度计', '1#SDJ', '9fb6e9b90c7b46c8854e03ac4cd92fe5', '72e5da370914401f92f97e0ddad72280', '安防', 'SDJ', '2017-05-14', 'd56949d95b39443fb7a599409bea48da', '2017-05-14 16:44:27', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:29:51');
    INSERT INTO `tb_equipment` VALUES ('ee99a441d0bc4a11814961b5601f7a85', '3#温度计', '3#WDJ', '357418c31f4b4c24a0a98cf089a2d042', '83c7b00092454dd79d4463bc60471ebf', '安防', 'WDJ', '2017-05-22', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:24:10', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:24:10');
    INSERT INTO `tb_equipment` VALUES ('f19fd699ba27485da915722453a139b7', '1#设备类型4', '1#SBLX4', 'eb5d06f868084ff389c721d49b5744b1', '7fe340d5e54c4a8ca58a8691d477b987', '安防', 'SBLX4', '2017-05-14', 'd56949d95b39443fb7a599409bea48da', '2017-05-14 16:45:21', 'd56949d95b39443fb7a599409bea48da', '2017-05-14 16:45:21');
    INSERT INTO `tb_equipment` VALUES ('f2b1fdc4929048fd83ee5c793ba09619', '1#设备类型1', '1#SBLX11', 'a86e8154fd974a279ef35894def7b3b3', '90fcc4b9aaab4e079e5f266eb8a4147b', '安防', 'SBLX1', '2017-05-14', 'd56949d95b39443fb7a599409bea48da', '2017-05-14 16:39:09', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:11:55');
    -- ----------------------------
    -- Records of tb_equipment_type
    -- ----------------------------
    INSERT INTO `tb_equipment_type` VALUES ('357418c31f4b4c24a0a98cf089a2d042', '湿度计', 'SDJ', 'd56949d95b39443fb7a599409bea48da', '2017-05-16 18:28:45', 'd56949d95b39443fb7a599409bea48da', '2017-05-16 18:45:09');
    INSERT INTO `tb_equipment_type` VALUES ('9fb6e9b90c7b46c8854e03ac4cd92fe5', '温度计', 'WDJ', 'd56949d95b39443fb7a599409bea48da', '2017-05-04 10:01:35', 'd56949d95b39443fb7a599409bea48da', '2017-05-17 18:39:01');
    INSERT INTO `tb_equipment_type` VALUES ('a86e8154fd974a279ef35894def7b3b3', '设备类型1', 'SBLX1', 'd56949d95b39443fb7a599409bea48da', '2017-05-04 10:01:35', 'd56949d95b39443fb7a599409bea48da', '2017-05-04 11:56:14');
    INSERT INTO `tb_equipment_type` VALUES ('c5f8e732af0f45d49b2b945a73ad4406', '设备类型2', 'SBLX2', 'd56949d95b39443fb7a599409bea48da', '2017-05-17 16:44:44', 'd56949d95b39443fb7a599409bea48da', '2017-05-17 16:44:44');
    INSERT INTO `tb_equipment_type` VALUES ('eb5d06f868084ff389c721d49b5744b1', '设备类型4', 'SBLX4', 'd56949d95b39443fb7a599409bea48da', '2017-05-04 10:01:35', 'd56949d95b39443fb7a599409bea48da', '2017-05-04 11:56:40');
    -- ----------------------------
    -- Records of tb_monitoring_indicators
    -- ----------------------------
    INSERT INTO `tb_monitoring_indicators` VALUES ('48035785195a49e3880d6c5cdf8559a3', 'Y', '指标1', null, 'd56949d95b39443fb7a599409bea48da', null, '2017-05-16 18:45:09', '357418c31f4b4c24a0a98cf089a2d042');
    INSERT INTO `tb_monitoring_indicators` VALUES ('4d13f75d24bc49febb911abc81b0be32', 'X', '指标2', null, 'd56949d95b39443fb7a599409bea48da', null, '2017-05-16 18:45:09', '357418c31f4b4c24a0a98cf089a2d042');
    INSERT INTO `tb_monitoring_indicators` VALUES ('d591a17a6d1f4052a1a4f1e4b65ccba5', 'WD', '温度', 'd56949d95b39443fb7a599409bea48da', 'd56949d95b39443fb7a599409bea48da', '2017-05-17 18:39:38', '2017-05-17 18:39:33', '9fb6e9b90c7b46c8854e03ac4cd92fe5');
    -- ----------------------------
    -- Records of tb_monitor_data
    -- ----------------------------
    INSERT INTO `tb_monitor_data` VALUES ('51776eea096840bb930056b6a1d7aae4', '55d31f4abb824134ab002332e66862f4', '48035785195a49e3880d6c5cdf8559a3', '3', '2017-05-21', 'manual', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:41:01', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:41:01');
    INSERT INTO `tb_monitor_data` VALUES ('bb1d818fcf294a4ba80fcad1ba731d7c', '55d31f4abb824134ab002332e66862f4', '4d13f75d24bc49febb911abc81b0be32', '2', '2017-05-21', 'manual', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:37:04', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:37:04');
    INSERT INTO `tb_monitor_data` VALUES ('cadd358493b94f1c87add42239c58da7', '70b7d4a6063c4805a8953e09300bd2f7', '48035785195a49e3880d6c5cdf8559a3', '1', '2017-05-22', 'manual', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:36:44', 'd56949d95b39443fb7a599409bea48da', '2017-05-22 11:36:44');
    -- ----------------------------
    -- Records of tb_workshop
    -- ----------------------------
    INSERT INTO `tb_workshop` VALUES ('4421aaf70b7844b0bdad3935d1d41f89', '车间7', 'CYHMH', '7', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:58', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:58');
    INSERT INTO `tb_workshop` VALUES ('44f2c7d7d51746deb6768e75dc7b9f45', '车间4', 'NQTD', '4', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:37', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:37');
    INSERT INTO `tb_workshop` VALUES ('4f8deba236c2453e8582a3fe53232345', '车间8', 'CHSD', '8', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:24:09', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:24:09');
    INSERT INTO `tb_workshop` VALUES ('72e5da370914401f92f97e0ddad72280', '车间1', 'CHZ', '1', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 13:47:21', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 13:47:21');
    INSERT INTO `tb_workshop` VALUES ('7fe340d5e54c4a8ca58a8691d477b987', '车间2', 'NGQ', '2', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 13:47:28', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 13:47:28');
    INSERT INTO `tb_workshop` VALUES ('83c7b00092454dd79d4463bc60471ebf', '车间9', 'MHCKZ', '9', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:24:17', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:24:17');
    INSERT INTO `tb_workshop` VALUES ('8a094eaae6a949f6b7f080cc59d9f970', '车间6', 'SDCK', '6', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:52', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:52');
    INSERT INTO `tb_workshop` VALUES ('90fcc4b9aaab4e079e5f266eb8a4147b', '车间3', 'JKZ', '3', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:21', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:21');
    INSERT INTO `tb_workshop` VALUES ('fac4369ba6544661b1cb9bc708e6d7c7', '车间5', 'BQTD', '5', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:45', 'd56949d95b39443fb7a599409bea48da', '2017-05-12 15:23:45');
      

  2.   

    可以尝试先参考下贴中的例子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...