我有一个名为'items'的表
id sender receiver item
1 1 2 computer
2 2 1 mobile
3 1 3 ipad
4 4 1 ring
5 3 1 camera
6 1 8 pc
7 5 1 ring
8 1 10 tablet
我只能做这两个查询,比如
SELECT `receiver` FROM `items` WHERE `sender` ='1'
结果
2
3
4
10
和
SELECT `sender` FROM `items` WHERE `receiver` ='1'
结果
2
4
3
5
如何获得发送者/接收者= 1
的不同接收者/发送者(只计算一次,如果超过1次) 像波纹管一样2
3
4
5
10
答案 0 :(得分:3)
一种选择是使用UNION
:
SELECT receiver FROM items WHERE sender ='1'
UNION
SELECT sender FROM items WHERE receiver ='1'
根据您的结果,您可能需要对每个查询使用SELECT DISTINCT
。
(根据您的样本数据产生略有不同的结果,因为我认为您有一些拼写错误)
答案 1 :(得分:1)
您可以在不使用 union
执行此操作:
SELECT DISTINCT (case when receiver = 1 then sender else receiver end)
FROM items
WHERE sender = 1 or receiver = 1