2012-01-28 78 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