MySQL - 获取条件数据

时间:2013-12-17 21:55:04

标签: mysql

这个问题可能很简单,但我很困惑。 我有一个指定的ID,我从2列获取数据时使用。 第一列是发件人,第二列是接收者。 我想在接收者是ID时从发送者那里获取数据,并希望在发送者是ID时从接收者那里获取数据。

select sender from table where receiver=ID ;
select receiver from table where sender=ID

我想要的是如何简化此查询并防止重复相同的数据。

2 个答案:

答案 0 :(得分:0)

select distinct sender from table where receiver=ID ;

答案 1 :(得分:0)

这是一种方法:

SELECT DISTINCT IF(t.receiver=ID,t.sender,IF(t.sender=ID,t.receiver,NULL)) AS mycol
  FROM mytable t
 WHERE t.receiver=ID
    OR t.sender=ID

另一种选择是将当前查询与UNION运算符组合在一起,例如

SELECT r.sender FROM mytable r WHERE r.receiver=ID 
 UNION
SELECT s.receiver FROM mytable s WHERE s.sender=ID

(请注意,我们使用UNION运算符而不是UNION ALL运算符,以便从结果集中删除任何重复的行。)