mysql - 如何在mysql中的同一个表的两个查询中获取不常见的数据?

标签 mysql

我有如下三个mysql表

消息表

msg_id  | msg_to | msg_from |msg

1 | 55 | 54 | hello

2 |55 |45 |Nice

3 |16 |55 |world

4 |54 |55 |Nice job

我需要得到的是

获取 msg_from id,即 msg_to='55'msg_to id,即 msg_from='55' 并将它们结合在一起,并从中获得不同的值(value)。

所以对于它应该返回的例子

54,45,16

这可能吗?还是我必须遵循任何其他规则才能完成此操作。谢谢

最佳答案

使用 UNION(隐式不同):

SELECT msg_from AS id FROM msg_table WHERE msg_to   = 55
UNION 
SELECT msg_to         FROM msg_table WHERE msg_from = 55;

SQL Fiddle Demo

这会给你:

| ID |
------
| 54 |
| 45 |
| 16 |

关于mysql - 如何在mysql中的同一个表的两个查询中获取不常见的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15584218/

相关文章:

php - PHP/MYSQL 下拉列表显示正确项目信息时出现错误

mysql - 处理大型数据库表的策略

mysql - Piwik MySQL 驱动程序未安装

mysql - 在这种情况下,是什么导致 MySQL 错误 1071( key 太长)?

php - Mysql哪里喜欢还是喜欢

非规范化表上的 MySQL WHERE 子句

mysql - makefile 错误 ----> make : *** No rule to make target `mysql.h'

mysql - 如何获取mysql中缺失的行

c++ - Client Hello 后握手失败

mysql - Node.js orm2 在循环中创建元素