I tried this new solution, but I don’t understand why the query update all rows, of the field DAZ
,and not only the row call to JOIN:
mysql> UPDATE tbl_1 t1,
(
SELECT
idticket,
TIME_TO_SEC(
TIMEDIFF(
TRIM(
STR_TO_DATE(
MAX(Date_hour),
'%d/%m/%Y %H:%i'
)
),
TRIM(
STR_TO_DATE(
MIN(Date_hour),
'%d/%m/%Y %H:%i'
)
)
)
) / 60 AS selected_value
FROM
tbl_2
) AS t2
JOIN tbl_1 ON tbl_1.idticket = t2.idticket
SET t1.DAZ = t2.selected_value;
SELECT
*
FROM
tbl_1;
Query OK, 10 rows affected
Rows matched: 10 Changed: 10 Warnings: 0
+-----+----------+----+
| DAZ | idticket | ID |
+-----+----------+----+
| 4 | 36237886 | 1 |
| 4 | 36237887 | 2 |
| 4 | 36237888 | 3 |
| 4 | 36237889 | 4 |
| 4 | 36237890 | 5 |
| 4 | 36237891 | 6 |
| 4 | 36237892 | 7 |
| 4 | 36237893 | 8 |
| 4 | 36237894 | 9 |
| 4 | 36237895 | 10 |
+-----+----------+----+
10 rows in set
the tables:
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `tbl_2`
-- ----------------------------
DROP TABLE IF EXISTS `tbl_2`;
CREATE TABLE `tbl_2` (
`idticket` varchar(255) DEFAULT NULL,
`Date_hour` varchar(255) DEFAULT NULL,
`id` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of tbl_2
-- ----------------------------
INSERT INTO `tbl_2` VALUES ('36237886', '06/02/2013 15:26', '1');
INSERT INTO `tbl_2` VALUES ('36237886', '06/02/2013 15:30', '2');
-- ----------------------------
-- Table structure for `tbl_1`
-- ----------------------------
DROP TABLE IF EXISTS `tbl_1`;
CREATE TABLE `tbl_1` (
`DAZ` varchar(255) DEFAULT NULL,
`idticket` varchar(255) DEFAULT NULL,
`ID` int(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of tbl_1
-- ----------------------------
INSERT INTO `tbl_1` VALUES ('', '36237886', '1');
INSERT INTO `tbl_1` VALUES ('', '36237887', '2');
INSERT INTO `tbl_1` VALUES ('', '36237888', '3');
INSERT INTO `tbl_1` VALUES ('', '36237889', '4');
INSERT INTO `tbl_1` VALUES ('', '36237890', '5');
INSERT INTO `tbl_1` VALUES ('', '36237891', '6');
INSERT INTO `tbl_1` VALUES ('', '36237892', '7');
INSERT INTO `tbl_1` VALUES ('', '36237893', '8');
INSERT INTO `tbl_1` VALUES ('', '36237894', '9');
INSERT INTO `tbl_1` VALUES ('', '36237895', '10');