2011-08-28 58 views
1

我想要生成線狀視圖MySQL的 - 組由具有多個列

在我已經從,到,日期和其他一些列的表

我要輸出通過從分組中的行並在DB到

例如數據

from,to,date 
a,b,somedate 
a,c,somedate 
b,a,somedate 

查詢:

SELECT 
    from, to, date 
FROM 
    data 
GROUP BY 
    from, to 
ORDER BY 
    date DESC; 

我期望的輸出是這樣的:(其中從和組合在一起)

a,b,somedate 
a,c,somedate 

(b,a,somedate not shows because its in the a,b group) 

但它沒有..

總的想法是有一個消息查看「用戶「.. 其中名單是由收件人,日期(不通過消息)排序...

+0

那麼,你是關聯'一,B'和'B,了'? – gbn

+0

是正確的,像'從'和'到'collum作爲一個分組來處理..(類似的事情) – Nullx8

回答

4

如果你想爲每(from, to)組合一行返回:

SELECT one, two, MIN(somedate) 
FROM 
(SELECT `from` AS one, `to` AS two, somedate 
    FROM data 
    WHERE `from` <= `to` 
UNION ALL 
    SELECT `to`, `from`, somedate 
    FROM data 
    WHERE `from` > `to` 
) AS tmp 
GROUP BY one 
     , two 
ORDER BY one 
     , two 

或者,如果你希望所有記錄:

SELECT one, two, somedate 
FROM 
(SELECT `from` AS one, `to` AS two, somedate 
    FROM data 
    WHERE `from` <= `to` 
UNION ALL 
    SELECT `to`, `from`, somedate 
    FROM data 
    WHERE `from` > `to` 
) AS tmp 
ORDER BY one 
     , two 
+0

我設法得到這樣的信息'code'SELECT * FROM maili where'from' =' $ user'或'to' ='$ user'GROUP BY GREATEST('to','from'),LEAST('to','from')ORDER BY'sent''code'輸出似乎正確,但我沒有得到最後的消息體 – Nullx8

+0

@ Nullx8:所以你只需要每個'(from,to)'組合的最新記錄? –