我的数据库如下:表名:消息
| 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'没关系
答案 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的不同列表,无论消息的发送者或接收者是谁。