gpt4 book ai didi

mysql - 查询获取两列上的最大 id

转载 作者:行者123 更新时间:2023-11-29 19:32:07 25 4
gpt4 key购买 nike

选择一对(发送者,接收者)具有最高 id 的不重复行的查询是什么,以任何顺序获取列。即(发送者,接收者)或(接收者,发送者)

我的表格数据

_id      sender   receiver    date      message
1 rohan deepak 17-01-17 hell
2 rohan deepak 18-01-17 hello
3 deepak rohan 18-01-17 had i done
4 anand shivam 20-01-16 joke

查询:

Select * from `message` where _id IN (Select max(_id) from
`message` GROUP BY sender,receiver);

或者

查询:

Select * from `message` where _id IN (Select max(_id) from
`message` GROUP BY receiver,sender);

给出

_id      sender   receiver    date      message
1 rohan deepak 17-01-17 hello
3 deepak rohan 18-01-17 had i done
4 anand shivam 20-01-16 joke

看到这里 id 1&3 是同一对,但它给出了不同的 max _id,所以我得到 2 行而不是 1 行(rohan,deepak)

我需要输出为:

_id      sender   receiver    date      message
3 deepak rohan 18-01-17 had i done
4 anand shivam 20-01-16 joke

因为 3,4 是唯一对的 max(_id)

谁能帮我得到这个。

最佳答案

不确定它是最有效的,但您可以使用UNION调用您的表两次,并更改发送者-接收者顺序:

Select * from `message` where _id IN (
Select max(_id) from (
Select _id, sender, receiver from `message`
UNION
Select _id, receiver, sender from `message`
) GROUP BY receiver,sender
);

类似的方法对我有用,但我使用 Oracle;您可能需要进行一些调整。

关于mysql - 查询获取两列上的最大 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41727327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com