Собственно есть запрос:
SELECT u.id, b. * , u.id AS uid, u.nickname AS author, u.login as author_login, 
                       COUNT(p.user_id) as records,
                       IFNULL( SUM( r.points ) , 0 ) AS points
                FROM zbl_users u, zbl_blogs b
                LEFT JOIN zbl_blog_posts p ON p.blog_id = b.id
                LEFT JOIN zbl_ratings r ON r.item_id = p.id AND r.target = 'blogpost'
                WHERE b.user_id = u.id AND owner='user'GROUP BY b.id
                 ORDER BY points DESC
 
В таблице zbl_blog_posts к примеру по user_id = 28 есть 3 записи, вышеописанный запрос возвращает 7, по user_id = 63 есть 1 запись возвращает 4.
Т.е. я хочу, чтобы запрос возвращал в records количество записей пользователя в блоге.
Помогите разобраться.
SHOW CREATE TABLE zbl_users;
| zbl_users | CREATE TABLE `zbl_users` (
  `id` int(11) NOT NULL auto_increment,
  `group_id` int(11) NOT NULL default '1',
  `login` varchar(100) NOT NULL,
  `nickname` varchar(100) NOT NULL,
  `password` varchar(100) NOT NULL,
  `email` varchar(100) NOT NULL,
  `icq` varchar(15) NOT NULL,
  `regdate` datetime NOT NULL default '0000-00-00 00:00:00',
  `logdate` datetime NOT NULL default '0000-00-00 00:00:00',
  `birthdate` date NOT NULL default '0000-00-00',
  `is_locked` int(11) NOT NULL,
  `is_deleted` int(11) NOT NULL,
  `rating` int(11) NOT NULL,
  `points` int(11) NOT NULL,
  `last_ip` varchar(15) NOT NULL,
  `status` varchar(255) NOT NULL default '? ???????!',
  `status_date` datetime NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `login` (`login`),
  KEY `is_locked` (`is_locked`,`is_deleted`,`icq`)
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=cp1251 |
 
 SHOW CREATE TABLE zbl_blogs;
| zbl_blogs | CREATE TABLE `zbl_blogs` (
  `id` int(11) NOT NULL auto_increment,
  `user_id` int(11) NOT NULL,
  `title` varchar(250) NOT NULL,
  `pubdate` datetime NOT NULL,
  `allow_who` varchar(15) NOT NULL,
  `view_type` varchar(15) NOT NULL default 'list',
  `showcats` int(11) NOT NULL default '1',
  `ownertype` varchar(15) NOT NULL default 'single',
  `premod` int(11) NOT NULL,
  `forall` int(11) NOT NULL default '1',
  `owner` varchar(10) NOT NULL default 'user',
  `seolink` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `seolink` (`seolink`),
  KEY `user_id` (`user_id`),
  KEY `allow_who` (`allow_who`),
  KEY `blog1` (`ownertype`,`owner`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=cp1251 |
 
SHOW CREATE TABLE zbl_blog_posts;
| zbl_blog_posts | CREATE TABLE `zbl_blog_posts` (
  `id` int(11) NOT NULL auto_increment,
  `user_id` int(11) NOT NULL,
  `cat_id` int(11) NOT NULL,
  `blog_id` int(11) NOT NULL,
  `pubdate` datetime NOT NULL,
  `title` varchar(250) NOT NULL,
  `feel` varchar(100) NOT NULL,
  `music` varchar(100) NOT NULL,
  `content` text NOT NULL,
  `allow_who` varchar(20) NOT NULL,
  `edit_times` int(11) NOT NULL,
  `edit_date` datetime NOT NULL,
  `published` int(11) NOT NULL default '1',
  `seolink` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `seolink` (`seolink`),
  KEY `user_id` (`user_id`),
  KEY `pubdate` (`published`,`pubdate`),
  KEY `pubdate_2` (`pubdate`,`blog_id`)
) ENGINE=InnoDB AUTO_INCREMENT=60 DEFAULT CHARSET=cp1251 |
 
в zbl_ratings хранятся оценки для постов, т.е. points = [-1, 1]
и привязываются они к постам через item_id и target='blogpost'
					
Отредактированно fuze (01.03.2010 10:35:46)