gpt4 book ai didi

sql - 与 SQL 搏斗

转载 作者:行者123 更新时间:2023-11-29 01:12:35 24 4
gpt4 key购买 nike

我在 MySQL 数据库中有这个:

table Message
sender_id int
recipient_id int
created datetime
[title, body, etc... omitted]

是否有可能在单个查询中从中获取与 ID 为 N 的给定用户通信的所有用户的列表(意味着 N 出现在 sender_idrecipient_id),按 created 排序,包括 created 的最新值,无重复(无发送者/接收者对 N、M 和 M、N) ?

我很确定答案是否定的,但我很难说服自己。下午精神沉闷。

如果否,您会推荐什么最有效的替代方案?


编辑:天哪,Stack Overflow 这些天都在跳来跳去。在我意识到之前的 8 个答案我忘记指定我希望 created 的最新值与每行中的其他用户 ID 一起出现。

最佳答案

试试这个

SELECT distinct recipient_id
FROM Message
WHERE sender_id = @id

UNION

SELECT distinct sender_id
FROM Message
WHERE recipient_id = @id

union 子句将删除两个查询中的重复项。实际上看它你不需要 distinct,因为 union 也会为你做这件事(有人知道使用 distinct 预过滤子句或让 union 处理所有重复是否更有效吗?)

关于sql - 与 SQL 搏斗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1703674/

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