这个问题可能很简单,但我很困惑。 我有一个指定的ID,我从2列获取数据时使用。 第一列是发件人,第二列是接收者。 我想在接收者是ID时从发送者那里获取数据,并希望在发送者是ID时从接收者那里获取数据。
select sender from table where receiver=ID ;
select receiver from table where sender=ID
我想要的是如何简化此查询并防止重复相同的数据。
答案 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
运算符,以便从结果集中删除任何重复的行。)