簡體   English   中英

組查詢不重視相應的值

[英]Group query doesn't value corresponding values

我有一個查詢,可以按最高順序進行分組。 我已經意識到是它能夠拿起ids好嗎但值vmsg字段不對應的的id

例如,id為28對應於vsmg ',但運行查詢后id為28選擇了另一個值。

這是從后端看的樣子

在此處輸入圖片說明

和我的劇本

SELECT 
    MAX(id) as id, vmsg, sender_id, fname, lname, profile_pix, profile.profile_id
FROM 
    chats 
LEFT JOIN 
    profile 
ON 
    chats.sender_id = profile.profile_id
WHERE 
    reciever_id = 1
GROUP BY 
    (sender_id)

我得到這個:

在此處輸入圖片說明

我獲得了最大idsvmsg值不對應。

如果您需要獲取與MAX(id)相對應的數據,則可以修改查詢,例如:

SELECT 
   c.id, c.vmsg, c.sender_id, c.fname, c.lname, p.profile_pix, p.profile_id
FROM 
    chats c 
LEFT JOIN 
    profile p 
ON
    c.sender_id = p.profile_id
WHERE 
    c.reciever_id = 1
AND 
    c.id 
        IN (
            SELECT 
                MAX(c.id) as id
            FROM 
                chats c 
            GROUP BY 
                c.sender_id 
        )

這將僅獲取與MAX(id)對應的數據。

我的策略:你會得到關於聊天,一切原糖,其中用於相同的ID id_sender_idreciever_id是最大的(所以不存在這對夫妻的下一行)

嘗試這個:

SELECT id,vmsg,sender_id,fname,lname,profile_pix,profile.profile_id
FROM chats c LEFT JOIN profile p
on chats.sender_id = profile.profile_id
WHERE NOT EXISTS
    (SELECT 'NEXT' FROM chat c2
    WHERE c2.id_sender_id = c.id_sender_id
    AND c2.reciever_id = c.reciever_id 
    AND c2.id > c.id)
AND reciever_id = 1

暫無
暫無

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

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