我目前正在嘗試爲我的網站創建某種形式的即時通訊工具,允許用戶彼此溝通。爲此,我創建了一個名爲messages
的sql表,標題爲id, senderID, recipientID, timestamp, message
。僅選擇來自所有結果的最新記錄,其中username = x?
目前,我正在努力研究如何爲id = x
的給定用戶創建所有對話的列表(不是單個消息)。此列表應該只包含發送到用戶X的最新消息,從每個發件人Y1,Y2,Y3,...
例如,考慮表
-------------------------------------------------------------
| ID | senderID | recipientID | timestamp | message |
-------------------------------------------------------------
| 1 | 14 | 34 | 2017-06-21 | Hello ... |
| 2 | 14 | 37 | 2017-06-22 | How ar... |
| 3 | 11 | 34 | 2017-06-23 | I was ... |
| 4 | 17 | 34 | 2017-06-24 | Good ... |
| 5 | 18 | 34 | 2017-06-25 | My na ... |
| 6 | 11 | 34 | 2017-06-26 | I've ... |
| 7 | 14 | 34 | 2017-06-27 | Thank ... |
| 8 | 12 | 34 | 2017-06-28 | I nee ... |
| 9 | 17 | 34 | 2017-06-29 | Have ... |
| 10 | 17 | 34 | 2017-06-30 | You h ... |
-------------------------------------------------------------
現在,假設我是用戶34,我希望查看包含每個senderID
給我自己的最新消息的列表。什麼是SQL查詢會這樣做?即SQL查詢會給出如下結果:
-------------------------------------------------------------
| ID | senderID | recipientID | timestamp | message |
-------------------------------------------------------------
| 5 | 18 | 34 | 2017-06-25 | My na ... |
| 6 | 11 | 34 | 2017-06-26 | I've ... |
| 7 | 14 | 34 | 2017-06-27 | Thank ... |
| 8 | 12 | 34 | 2017-06-28 | I nee ... |
| 10 | 17 | 34 | 2017-06-30 | You h ... |
-------------------------------------------------------------
什麼SQL命令用於給出這個結果?
通過時間戳DESC其中recipientID = 34階 –