· 6 years ago · Jun 23, 2019, 08:32 PM
1CREATE TABLE IF NOT EXISTS `respostas` (
2 `id` int(11) NOT NULL AUTO_INCREMENT,
3 `responsavel_id` int(11) NOT NULL,
4 PRIMARY KEY (`id`)
5) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
6
7
8CREATE TABLE IF NOT EXISTS `respostas_log` (
9 `id` int(11) NOT NULL AUTO_INCREMENT,
10 `respostas_id` int(11) NOT NULL,
11 `opt_aplicavel` tinyint(1) DEFAULT NULL,
12 `txt_resposta` text,
13 `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
14 PRIMARY KEY (`id`),
15 KEY `respostas_id` (`respostas_id`)
16) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
17
18INSERT INTO `respostas` (`id`, `responsavel_id`) VALUES
19(1, 1),
20(2, 3);
21
22INSERT INTO `respostas_log` (`id`, `respostas_id`, `opt_aplicavel`, `txt_resposta`, `created_at`) VALUES
23(1, 1, 1, 'Resposta 1 de 1', '2014-05-13 00:00:00'),
24(2, 1, 1, 'Resposta 2 de 1', '2014-05-13 00:00:00'),
25(3, 1, 0, 'Resposta 3 de 1', '2014-05-13 00:00:00');
26
27SELECT r.id,
28 r.responsavel_id,
29 l.opt_aplicavel,
30 l.txt_resposta,
31 max(l.id)
32
33FROM respostas r
34
35LEFT JOIN respostas_log l ON l.respostas_id = r.id
36
37GROUP BY r.id,
38 r.responsavel_id,
39 l.opt_aplicavel,
40 l.txt_resposta
41
42SELECT r.id,
43 r.responsavel_id,
44 l.opt_aplicavel,
45 l.txt_resposta,
46 l.id idLog
47FROM respostas r
48
49LEFT JOIN respostas_log l
50 ON l.id = (select max(id) from respostas_log l2 where l2.respostas_id = r.id)
51
52SELECT r.id,
53 r.responsavel_id,
54 l.opt_aplicavel,
55 l.txt_resposta,
56 l.id idLog
57FROM respostas r
58
59LEFT JOIN (select respostas_id, max(id) id from respostas_log group by respostas_id) l2
60 ON l2.respostas_id = r.id
61
62LEFT JOIN respostas_log l
63 ON l.id = l2.id;