我需要为最后100个个人资料提取每个个人资料的最后评论
如果type == 1,每个配置文件至少有一条评论
以下是相关表格和数据:
CREATE TABLE IF NOT EXISTS `comment` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`profile` int(11) NOT NULL,
`name` varchar(200) NOT NULL,
`email` varchar(200) NOT NULL,
`county` int(11) NOT NULL,
`comment` text NOT NULL,
`created` int(11) NOT NULL,
`status` int(11) NOT NULL,
`verified` int(11) NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
INSERT INTO `comment` (`id`, `profile`, `name`, `email`, `county`, `comment`, `created`, `status`, `verified`) VALUES
(1, 1, 'ANGAJAT 1', 'email 2', 1, 'comm 1', 1335423985, 0, 0),
(2, 3, 'ANGAJAT 2', 'email 4', 1, 'comm 2', 1335424011, 0, 0),
(3, 5, 'ANGAJAT 3', 'email 6', 1, 'comm 3', 1335424037, 0, 0),
(4, 5, 'ANGAJAT 3', 'email 6', 1, 'comm 4', 1335424039, 0, 0);
CREATE TABLE IF NOT EXISTS `profile` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`type` int(11) NOT NULL COMMENT '1 = angajatori ; 2 - angajati',
`name` varchar(200) NOT NULL,
`county` int(11) NOT NULL,
`email` varchar(200) NOT NULL,
`created` int(11) NOT NULL,
`comments` int(11) NOT NULL,
`status` int(11) NOT NULL,
`verified` int(11) NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
INSERT INTO `profile` (`id`, `type`, `name`, `county`, `email`, `created`, `comments`, `status`, `verified`) VALUES
(1, 1, 'ANGAJATOR 1', 1, 'email 1', 1335423985, 0, 0, 0),
(2, 2, 'ANGAJAT 1', 1, 'email 2', 1335423985, 0, 0, 0),
(3, 1, 'ANGAJATOR 2', 1, 'email 3', 1335424011, 0, 0, 0),
(4, 2, 'ANGAJAT 2', 1, 'email 4', 1335424011, 0, 0, 0),
(5, 1, 'ANGAJATOR 3', 1, 'email 5', 1335424037, 0, 0, 0),
(6, 2, 'ANGAJAT 3', 1, 'email 6', 1335424037, 0, 0, 0);\
我试过了:
SELECT *
FROM COMMENT c
JOIN profile p ON p.id = c.profile
GROUP BY c.profile
ORDER BY c.created DESC , p.id ASC
LIMIT 100
我得到了:
id profile name email county comment created status verified id type name county email created comments status verified
3 5 ANGAJAT 3 email 6 1 comm 3 1335424037 0 0 5 1 ANGAJATOR 3 1 email 5 1335424037 0 0 0
2 3 ANGAJAT 2 email 4 1 comm 2 1335424011 0 0 3 1 ANGAJATOR 2 1 email 3 1335424011 0 0 0
1 1 ANGAJAT 1 email 2 1 comm 1 1335423985 0 0 1 1 ANGAJATOR 1 1 email 1 1335423985 0 0 0
查询返回每100家公司的第一条评论
请查询
答案 0 :(得分:1)
试试这个:
SELECT c.*
FROM COMMENT c
JOIN
(SELECT MAX(created_at) created_at, profile FROM COMMENT
GROUP BY profile) p ON p.profile = c.profile AND p.created_at = c.created_at
ORDER BY c.created DESC , p.profile ASC
LIMIT 100
应该这样做。