2012-01-28 63 views
0

我下面的数据:(这是评价数据)
SQL Data分组查询数据 - MySQL的MySQL的

,然后我通过ucom_ucom_id想组这些数据,它会是这样

UCOM_ID | USER_ID | UCOM_DATE | UCOM_COMMENT | UCOM_TITLE | UCOM_UCOM_ID 
--------------------------------------------------------------------------- 
    7 | 2 | 2012-01-28 | xxx   | xxx  | 0 
    8 | 2 | 2012-01-28 | xxx   | xxx  | 7 
    12 | 2 | 2012-01-28 | xxx   | xxx  | 7 
    9 | 2 | 2012-01-28 | xxx   | xxx  | 0 
    13 | 2 | 2012-01-28 | xxx   | xxx  | 9 

其中UCOM_UCOM_ID = 0, is first commentif UCOM_UCOM_ID = one of UCOM_ID,那么它是从第一条评论发表评论。
我想产生视图在PHP这样的:

[UCOM_ID] 7, [UCOM_COMMENT] xxx 
      [UCOM_ID] 8, [UCOM_COMMENT] xxx 
      [UCOM_ID] 12, [UCOM_COMMENT] xxx 

[UCOM_ID] 9, [UCOM_COMMENT] xxx 
      [UCOM_ID] 13, [UCOM_COMMENT] xxx 

在MySQL查询什么来获得上述结果,或者我应该做别的事,而不使用查询?
非常感谢。

+0

使用组'ucom_ucom_id' .. **注:**,你必须删除,使得分组行不通像'UCOM_ID'任何列。 – jjj 2012-01-28 08:31:36

+0

@jjj,对不起,我还是不明白,你能告诉更具体的吗?我已经尝试过使用ucom_ucom_id选择* FROM user_comments组,但是结果只有3行([UCOM_ID] 7,8,13) – Praditha 2012-01-28 09:01:38

+1

当您使用GROUP BY时,除非将每个字段进入分组的条款,如果你这样做,那么你不是真正的分组。也就是说,*和GROUP BY实质上是不兼容的。 – 2012-01-28 09:07:51

回答

2

确切地说出你想要的结果集看起来有点难。我想,这可能会做你想要什么,虽然:由

SELECT y.UCOM_ID, y.UCOM_COMMENT 
FROM tablename x 
    LEFT JOIN tablename y 
     ON y.UCOM_UCOM_ID = x.UCOM_ID 
      OR 
      (y.UCOM_UCOM_ID = 0 
      AND 
      y.UCOM_ID = x.UCOM_ID) 
WHERE x.UCOM_UCOM_ID = 0 
+0

啊,我刚刚意识到我遗漏了一个)......固定 – 2012-01-28 09:05:05