gpt4 book ai didi

mysql - 在条件字段上加入

转载 作者:可可西里 更新时间:2023-11-01 08:49:15 24 4
gpt4 key购买 nike

我有一个消息表:

id
sender_id
recipient_id

我想提取用户 (id:1) 的所有消息,他是发件人收件人 并加入他正在与之交谈的“其他人”。

类似于:

SELECT * FROM `message`
LEFT JOIN `user` AS u ON IF(sender_id != 1, sender_id = u.id, recipient_id = u.id)
WHERE sender_id=1 OR recipient_id=1

我没有同时加入senderrecipient的原因是我已经有我正在搜索的用户,所以我认为加入是一种浪费他在每条消息上 - 除非你另有说明!

这个查询是我从另一个 SO 问题得到的,但我读到它根本没有效率,那么什么是更好的查询?

最佳答案

这会起作用:

SELECT *
FROM message
JOIN users ON (message.sender_id = 1 AND user.id = message.recipient_id)
OR (message.recipient_id = 1 AND user.id = message.sender_id)

请注意,还有多种其他方法可以以更高效的方式执行此操作。这是我能看到的最直接的方法。

关于mysql - 在条件字段上加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18764005/

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