2013-12-17 31 views
0

這個問題可能很簡單,但我很困惑。 我有從2列中獲取數據時使用的指定ID。 第一列是發件人,第二列是收件人。 當收件人是ID時,我想從發件人那裏獲取數據,並且當發件人是ID時想從收件人那裏獲取數據。MySQL - 獲取有條件的數據

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

我想要的是如何簡化此查詢並防止重複相同的數據。

回答

0
select distinct sender from table where receiver=ID ; 
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,因此,任何重複的行會從結果被淘汰。)

+0

這就是我想要exactly.Thanks – Mustafa