Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 获取每个对话的收件人id_Mysql_Sql - Fatal编程技术网

Mysql 获取每个对话的收件人id

Mysql 获取每个对话的收件人id,mysql,sql,Mysql,Sql,我有一张这样的桌子 | id-AI | from | to | text |created_date +----+---------+-------+-------------+------------- | 1 | 7 | 1 | from 7 to 1 |2015-11-06 04:59:14 | 2 | 1 | 2 | from 1 to 2 |2015-11-06 04:57:06 | 3 | 7

我有一张这样的桌子

| id-AI | from    | to    | text         |created_date
+----+---------+-------+-------------+-------------
| 1  | 7       | 1     | from 7 to 1  |2015-11-06 04:59:14 
| 2  | 1       | 2     | from 1 to 2  |2015-11-06 04:57:06
| 3  | 7       | 1     | from 7 to 1  |2015-11-06 04:25:45
| 4  | 1       | 6     | from 1 to 6  |2015-11-06 04:25:32 
| 5  | 1       | 5     | from 1 to 5  |2015-11-06 04:25:16
我想要一个这样的列表。一个打击我或我打击他/她或我们进行了长时间对话的用户列表。我想要的列表应该是最新的顺序,就像facebook消息一样

| users |
+-------+
| 7    
| 2     
| 6
| 5

1是主要用户id。获取1所涉及的列表(在收件人或发件人中),然后这称为对话。

您可以使用以下查询:

SELECT IF (`from` = 1, `to`, `from`)
FROM mytable
WHERE 1 IN (`from`, `to`)
ORDER BY created_date DESC
这将返回包含
user\u id=1
的每个对话的创建者或接收者

获取一组不同的
用户id
值的有序集合使用此查询:

SELECT IF (`from` = 1, `to`, `from`)
FROM mytable
WHERE 1 IN (`from`, `to`)
GROUP BY IF (`from` = 1, `to`, `from`)
ORDER BY MAX(created_date) DESC
使用联合体:

SELECT user
FROM (SELECT to AS user, created_date
      FROM mytable
      WHERE from = 1)
      UNION
      SELECT from AS user, created_date
      FROM mytable
      WHERE to = 1) x
GROUP BY user
ORDER BY MAX(created_date) DESC

有什么问题吗?编写一个查询,在
from
中找到他,另一个查询在
to
中找到他,并将它们与
UNION
组合。是否按日期排列最新顺序?如果使用
按创建的顺序_datedesc
,则会出现这种情况。请给出sql查询。我尝试使用UNION和ORDER BY,但结果不是我想要的。谢谢。它返回了多个值。我想要一个清晰的用户列表。显然,在“收件人”或“发件人”字段中有多个用户id条目,因为这是对话。@拉吉布霍森看一下我所做的编辑。