从数据库中选择相关的ID

时间:2014-05-12 20:33:23

标签: php sql

我的数据库如下:表名:消息

| receive | transmit |
---------------------
|   1    |  5    |
|   1    |  6    |
|   1    |  3    |
|   3    |  1    |
|   4    |  1    |
|   2    |  3    |
|   4    |  6    |
|   7    |  9    |

如何从每列中获取与1相关但不与其他相关的所有ID。

我如何获得3,4,5,6但不是2,7,9?因为它们与'1'没关系

2 个答案:

答案 0 :(得分:2)

这将有效:

SELECT receive
FROM messages
WhERE transmit = 1
UNION
SELECT transmit
FROM messages
WhERE receive = 1

点击此处的演示: DEMO

答案 1 :(得分:1)

在mysql中:

SELECT DISTINCT IF(receive = 1, transmit, receive) as id
FROM messages
WHERE receive=1 OR transmit=1

这将返回与1通信的所有ID的不同列表,无论消息的发送者或接收者是谁。