[英]PHP MYSQL - Distinct multiple columns as one
我已经阅读了很多与此主题相关的问题和答案,但是找不到对我有用的任何东西,因此我真的可以使用一些帮助。
我正在尝试为我的网站创建一个简单的私人消息传递系统。 我有一张这样的桌子:
private messages: id, to_id, from_id, message, time_sent
现在,我试图在页面上显示与成员进行交互的不同用户的列表,例如Facebook消息,因此每个名称在列表中仅出现一次。
这是我现在所拥有的,向我显示我作为用户($ my_id)参与的每条消息:
SELECT * FROM private_messages WHERE (from_id = '$Sid' AND to_id = '$my_id') OR (from_id = '$my_id' AND to_id = '$Sid') ORDER BY time_sent ASC
此查询显示一个不同的列表,但仅包含我收到以下消息的人员:
SELECT DISTINCT(from_id) FROM private_messages WHERE to_id='$my_id' ORDER BY time_sent DESC
我应该如何重写它,以便为我提供了与之交互的每个用户的独特列表(例如Facebook消息列表)? 我认为我需要在from_id和to_id两列中区分开,但是我应该怎么做呢?
我知道问题听起来很模糊,但我真的无法更好地解释它。 提前致谢!
尝试这个:
SELECT DISTINCT IF(from_id = '$my_id', to_id, from_id) AS other_id
FROM private_messages
WHERE '$my_id' IN (to_id, from_id)
ORDER BY time_sent DESC
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.