1

我有三个mysql表如下

msg_table

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 ids,即msg_to='55'msg_to ids,即msg_from='55'并将它们连接在一起并从中获取不同的值。

因此,对于应该返回的示例

54,45,16

这可能吗?还是我必须遵循任何其他规则才能做到这一点。谢谢

4

2 回答 2

1

使用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 小提琴演示

这会给你:

| ID |
------
| 54 |
| 45 |
| 16 |
于 2013-03-23T07:01:07.200 回答
1

您可以简单地使用UNION来组合仅给出 unique 的查询的结果ID

SELECT  msg_to to_from FROM msg_Table WHERE msg_from = 55
UNION
SELECT  msg_from to_from FROM msg_Table WHERE msg_to = 55

输出

╔═════════╗
║ TO_FROM ║
╠═════════╣
║      16 ║
║      54 ║
║      45 ║
╚═════════╝
于 2013-03-23T07:01:12.473 回答