![](/img/trans.png)
[英]How to query mysql to select rows with non unique combination of two columns
[英]Get unique rows with combination of two columns
在我的消息頁面上,我想顯示最新的對話列表。 列表將是如果從pc發送消息到pc2和pc2發送回PC然后它應該只顯示一行。
我試過這個查詢
SELECT id,col2,col3,col4 FROM yourtable GROUP BY col2,col3;
但它導致了
更新:
我試過這個查詢
SELECT * FROM tbl_primessages其中frmid = 3466或toid = 3466 GROUP BY frmid,toid ORDER BY tbl_primessages
。 timestemp
DESC
更新2它應該是最新的兩個時間
下面的查詢使用最小/最大的技巧將涉及同一對用戶的消息組合在一起。 然后,我們可以保留每對人的最新對話。
SELECT t1.*
FROM tbl_primessages t1
INNER JOIN
(
SELECT
LEAST(frmid, toid) AS frmid,
GREATEST(frmid, toid) AS toid,
MAX(timestamp) AS latest_ts
FROM tbl_primessages
GROUP BY LEAST(frmid, toid), GREATEST(frmid, toid)
) t2
ON LEAST(t1.frmid, t1.toid) = t2.frmid AND
GREATEST(t1.frmid, t1.toid) = t2.toid AND
t1.timestamp = t2.latest_ts
在這里演示:
在SELECT中僅使用GROUP BY中的字段加上一些聚合函數(COUNT,AVG,MIN,MAX等)。
SELECT frmid, toid
FROM tbl_primessages
Where frmid = 3466 OR toid = 3466
GROUP BY frmid, toid
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.