如何从重复结果中获得不同的值

时间:2014-12-11 02:44:12

标签: php mysql mysqli

我有一个名为'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

2 个答案:

答案 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