簡體   English   中英

PHP / SQL:每個dialog_id選擇一個

[英]PHP/SQL: Select one per dialog_id

好的,在我的PM收入列表中,我有以下內容:

$queryIn = "SELECT * FROM users_pm_in WHERE uID = '$USER' ";

接受所有查詢並顯示它們。 現在,每次用戶創建PM時,他都會創建一個“ dialog_id”編號。 如果收件人響應用戶的PM,則收件人的PM在dialog_id中也將具有該號碼。

因此,這就是為什么我只想在每個dialog_id中顯示1個收入項。 在users_pm_in中的外觀:

id | uID | bID | msg | dialog_id
--------------------------------
 1 | 1 | 2 | Hello | 1
 2 | 2 | 1 | Hi? | 1
 3 | 1 | 2 | Wazzaa? | 1

uID是接收消息的人,bID是發送消息的用戶,msg是消息,dialog_id顯示他們在同一個對話框中編寫的內容完全相同(彼此響應)。

因此,如果我的ID為1,那么在我的收入列表中,我現在將有2個條目,帶有上面的查詢。

我想要的只有1個,如果它是相同的對話框(dialog_id和相同的bID)

並且顯示的1應該是按日期desc排序的一個順序

SELECT * FROM users_pm_in WHERE uID = '$USER' GROUP BY dialog_id ORDER BY id DESC

我認為問題在於您不能保證MySQL在GROUP BY語句之后將返回哪一行-您希望它返回具有“最高”(即最新)日期的行,但此刻可能未必一定退還。 因此:

SELECT *, MAX(date) FROM users_pm_in WHERE uID = '$USER' GROUP BY dialog_id ORDER BY date DESC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM