繁体   English   中英

PHP MYSQL-将多个列作为一个独立

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM