私は
...(とこの方法でも、このクエリを書くのより最適な方法がきっとあります)解決策として、これを提唱していないんだけど、単に例示のために
DROP TABLE IF EXISTS `log`;
CREATE TABLE `log` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(16) DEFAULT NULL,
`ts` datetime NOT NULL,
`state` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`id`)
);
INSERT INTO `log` VALUES
(20,1,'2016-05-16 00:03:02',1),
(21,1,'2016-05-16 00:04:03',0),
(22,2,'2016-05-16 00:04:28',1),
(23,2,'2016-05-16 00:06:45',0),
(25,1,'2016-05-16 00:14:50',1),
(26,2,'2016-05-16 00:15:35',1);
DROP TABLE IF EXISTS `TimeMins`;
CREATE TABLE `TimeMins` (
t time PRIMARY KEY
);
INSERT INTO `TimeMins` VALUES
('00:00:00'),
('00:01:00'),
('00:02:00'),
('00:03:00'),
('00:04:00'),
('00:05:00'),
('00:06:00'),
('00:07:00'),
('00:08:00'),
('00:09:00'),
('00:10:00'),
('00:11:00'),
('00:12:00'),
('00:13:00'),
('00:14:00'),
('00:15:00'),
('00:16:00'),
('00:17:00'),
('00:18:00'),
('00:19:00'),
('00:20:00');
SELECT a.*
, b.id
, b.name
, b.state
FROM
(SELECT DISTINCT CONCAT(DATE(l.ts),' ',t.t) i
FROM log l
, timemins t
) a
LEFT
JOIN log b
ON DATE_FORMAT(b.ts,'%Y%m%d%h%i') = DATE_FORMAT(a.i,'%Y%m%d%h%i');
+---------------------+------+------+-------+
| i | id | name | state |
+---------------------+------+------+-------+
| 2016-05-16 00:00:00 | NULL | NULL | NULL |
| 2016-05-16 00:01:00 | NULL | NULL | NULL |
| 2016-05-16 00:02:00 | NULL | NULL | NULL |
| 2016-05-16 00:03:00 | 20 | 1 | 1 |
| 2016-05-16 00:04:00 | 21 | 1 | 0 |
| 2016-05-16 00:04:00 | 22 | 2 | 1 |
| 2016-05-16 00:05:00 | NULL | NULL | NULL |
| 2016-05-16 00:06:00 | 23 | 2 | 0 |
| 2016-05-16 00:07:00 | NULL | NULL | NULL |
| 2016-05-16 00:08:00 | NULL | NULL | NULL |
| 2016-05-16 00:09:00 | NULL | NULL | NULL |
| 2016-05-16 00:10:00 | NULL | NULL | NULL |
| 2016-05-16 00:11:00 | NULL | NULL | NULL |
| 2016-05-16 00:12:00 | NULL | NULL | NULL |
| 2016-05-16 00:13:00 | NULL | NULL | NULL |
| 2016-05-16 00:14:00 | 25 | 1 | 1 |
| 2016-05-16 00:15:00 | 26 | 2 | 1 |
| 2016-05-16 00:16:00 | NULL | NULL | NULL |
| 2016-05-16 00:17:00 | NULL | NULL | NULL |
| 2016-05-16 00:18:00 | NULL | NULL | NULL |
| 2016-05-16 00:19:00 | NULL | NULL | NULL |
| 2016-05-16 00:20:00 | NULL | NULL | NULL |
+---------------------+------+------+-------+
私は編集しましたが、ページが更新されませんでした。 2列。 「時間」と「状態」。ありがとう。 –
ストロベリー下記のコメントをご覧ください。あなたの助けは大変感謝しています。 –
十分に良い。ありがとう、それを編集しました。 –