|
我正在尝试计算单个用户发布的总评论数。这是表的表结构comments:9 e, V& l1 Y" V
CREATE TABLE `PLD_COMMENT` (
! B3 U7 m5 Z( \. |7 q `ID` int(11) NOT NULL auto_increment, / s" O1 w' C; `8 ]
`ITEM_ID` varchar(11) NOT NULL,
! n9 _) |# Q; r0 p/ p `USER_ID` varchar(11) NOT NULL,
5 t7 f7 t; B7 y/ ]4 H `USER_NAME` varchar(255) NOT NULL,
( [! ]$ r/ B$ p `COMMENT` longtext,7 B* ?/ q( U6 H' v1 X: L% F: z- F
`COMMENT_TITLE` varchar(255) default NULL," P* k8 q1 j. T \8 x( T
`COMMENT_RATING` tinyint(1) default '1', . U: Z. B! o. E% S9 s
`TYPE` int(11) NOT NULL, - G. \. X4 C& Q @
`DATE_ADDED` timestamp NOT NULL - Y' y$ [0 O2 i' i( x' ^
default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
/ @1 a E% a! T8 @8 J" m `IPADDRESS` varchar(15) default NULL,! e- I$ U, b5 S. d
`STATUS` varchar(11) NOT NULL,
M3 V0 N. `! [ PRIMARY KEY (`ID`)
% S1 v% T8 [2 a1 S5 C" y% h! ^" l# j) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=latin12 f; o2 Y" @+ `) y
这里是表结构user表0 p, @* j8 L- i( \1 @% [ r
CREATE TABLE `pld_user`(: F1 X* j6 b8 s1 Y' D6 p0 _
`ID` int(11) NOT NULL auto_increment,
2 t$ E7 C5 F H/ Q x2 ~ `LOGIN` varchar(100) NOT NULL,) \5 E3 H3 r' `! J9 |
`NAME` varchar(255) NOT NULL,
# F$ d5 l' r7 Z+ I. h `PASSWORD` varchar(46) NOT NULL,
) r# {* N; p X0 B/ ?3 H `LEVEL` tinyint(4) NOT NULL default '0',& p( \5 j! O. d; |5 G: V) Q
`RANK` tinyint(4) NOT NULL default '0',' }8 L- W$ C9 I# E
`ACTIVE` tinyint(4) NOT NULL default '0',2 y, ]; c& H2 K! j$ T/ V
`LAST_LOGIN` timestamp NOT NULL - Q4 Q& Y& B8 _9 Y" B
default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,8 U3 s1 L1 ~1 m
`REGISTRATION_DATE` timestamp NOT NULL default '0000-00-00 00:00:00',
" d8 J5 Q/ K) G+ I& R$ T0 D `AUTH_IMG` varchar(255) default NULL,: }- X4 |8 R1 C' x) V# |" k! F
`AUTH_IMGTN` varchar(255) default NULL,
# t- r; F- e5 B `SUBMIT_NOTIF` tinyint(4) NOT NULL default '1',
; }6 p$ t: y% m8 Y2 |& b* ?) e( ` `PAYMENT_NOTIF` tinyint(4) NOT NULL default '1', 9 @. Z! t+ n* F
`ADDRESS` varchar(255) default NULL, 5 s" L' K Z' r2 P
`EMAIL` varchar(255) NOT NULL,
/ |9 T$ e% P" Z% p7 i# A7 z" { `WEBSITE` varchar(255) default NULL,
5 o" F) s* {1 H& P `WEBSITE_NAME` varchar(255) default NULL,+ C3 ~2 n$ r0 ]& K
`INFO` varchar(255) default NULL, 2 e' _5 B7 z$ S8 v; y9 A( F
`ANONYMOUS` tinyint(4) NOT NULL default '0', C. h) w* ~( H1 P9 }, v
`LANGUAGE` varchar(2) default NULL,
1 C# G5 ^5 p2 P% @) T4 e8 U `AVATAR` varchar(100) default NULL,- t4 q7 ?0 P1 U/ \% l+ w3 A& |
`ICQ` varchar(15) default NULL,
5 o' R) S/ [, s8 X `AIM` varchar(255) default NULL,
8 N" F. I/ _1 ]1 B+ y `YIM` varchar(255) default NULL, : B6 u- o8 O J
`MSN` varchar(255) default NULL,
. G/ J4 h, G/ O `CONFIRM` varchar(10) default NULL,- G7 z( c+ @' _ j4 [5 L X' p
`NEW_PASSWORD` varchar(46) default NULL,9 N. m! e$ G# \. S$ \3 a
`EMAIL_CONFIRMED` int(11) NOT NULL default '1', $ @- ~' Y, u# ?% i
`LNAME` varchar(255) default NULL,
9 Q2 k" Y& n- q. J; i9 O/ [ a `CITY` varchar(255) default NULL,
' w9 k( s; f: O/ `3 { `STATE` varchar(255) default NULL,
$ M5 ]( L) B5 j& S `DOB` date default NULL,
) a5 T- x4 |. t' W1 f `UTYPE` tinyint(1) NOT NULL default '0',
' d2 B- P1 P% d; z PRIMARY KEY (`ID`) . ^1 c( R3 \' v
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1
2 b( E1 z. h$ _# w& q5 c' d( y COMMENT='Stores all the users with informations'
6 _! i% [0 i1 M4 x' e9 A' w这是我的查询:
! }$ ~2 X q# l2 xSELECT count(c.USER_ID) as total_commments_user , # d7 G( v8 H0 z
c.*, u.NAME, l.TITLE as LINK_TITLE, u.AUTH_IMG
9 a7 O1 D3 `% vFROM `PLD_COMMENT` c9 X2 L. P5 v# r+ b1 Y
left outer join `PLD_USER` u ON (u.ID = c.USER_ID) & k ^+ o- r2 B' F* I7 U/ f2 G2 H
left outer join `PLD_LINK` l ON (l.ID = c.ITEM_ID AND l.STATUS='2') ' x: Y$ T( M- ?1 `, y o3 m
WHERE c.TYPE = '1'
# u7 x1 X; ~- @- d, I& |5 V AND c.STATUS = '2' 0 ^. ^' C' g1 c/ b7 u7 Z
group by c.ID ORDER BY c.ID DESC LIMIT 0 , 3& Q* E7 S K4 a2 ~6 g: j. F
当我运行此查询时,在的每一行中都有1 total_comments_user。8 z1 n. j3 D& W
任何的想法?
4 u- P0 ^7 `$ l) l; [- K. u $ M# c& B/ B+ N7 Q) I4 Z) t
解决方案: |
|