2017-08-30 61 views
0

所以,我想要做的是檢索所有的「初始」消息的人在他們的消息窗口看到清單MySQL的鮮明/組通過,打破了我的頭,這一個

這是表結構

thread_id | sender | receiver | message | date | sender_deleted | sender_received | read 
xRdaQ  | bTP5n | lCBNA | hello! | date | 0    | 0    | 
xRdaQ  | lCBNA | bTP5n | hey! | date | 0    | 0    | 
1T4xR  | bTP5n | An03R | hhi  | date | 0    | 0    | 

我試過到目前爲止查詢:

select * from messages where sender = 'bTP5n' 
union select * from messages where receiver = 'bTP5n' 
group by conversation_id 

我仍然用同樣的thread_id

得到兩行

這一個查詢相同:

select * from messages where sender = 'bTP5n' 
union select * from messages where receiver = 'bTP5n' 
group by conversation_id order by date desc 

他們兩人都未能返回我想要的東西,這是所有獨特的thread_id,即發送者或接收者等於「bTP5n」

免責聲明:這個問題使用虛擬數據

回答

1

如果您在第二個聯合查詢中使用group by,那麼它僅適用於第二個查詢,如果要應用所有結果,則必須在所有結果之外編寫組結果。 嘗試以下查詢:

select * from 
(select * from messages where sender = 'bTP5n' 
union 
select * from messages where receiver = 'bTP5n' 
) 
as a group by conversation_id order by date desc 
0

作爲統計計算功能與原始數據所使用的GROUP BY子句一旦必需的。這不是你的例子