Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何从每个配置文件中提取最后的注释?_Sql_Greatest N Per Group - Fatal编程技术网

Sql 如何从每个配置文件中提取最后的注释?

Sql 如何从每个配置文件中提取最后的注释?,sql,greatest-n-per-group,Sql,Greatest N Per Group,我需要提取每个配置文件的最后评论,最后100个配置文件 如果type==1,则每个概要文件至少有一条注释 类型==1=>是公司 类型==2=>是人类 以下是相关表格和数据: 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` v

我需要提取每个配置文件的最后评论,最后100个配置文件

如果type==1,则每个概要文件至少有一条注释

  • 类型==1=>是公司
  • 类型==2=>是人类
以下是相关表格和数据:

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家公司的第一条注释

请帮助查询

尝试以下操作:

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

它应该可以做到这一点。

id from profile,是注释中的FK,称为profileOk,我希望已修复。请试一试。