2016-04-28 52 views
1

我試圖在MySQL中進行查詢以檢索我的某個表的某些數據。MySQL選擇與我的數據匹配的列

+---------------+-------------------+------------+ 
| friendA |  friendB  | firstDate | 
+---------------+-------------------+------------+ 
| Peter   |  Susan  | 05/05/2010 | 
| Soshi   |  Peter  | 05/05/2010 | 
| Peter   |  Marie  | 05/05/2010 | 
+---------------+-------------------+------------+ 

我試圖讓彼得和firstDate字段的所有朋友沒有匹配彼得的名字的字段。

我想要的例子。

+---------------+-------------------+ 
| friends |  firstDate | 
+---------------+-------------------+ 
| Susan   | 05/05/2010  | 
| Soshi   | 05/05/2010  | 
| Marie   | 05/05/2010  | 
+---------------+-------------------+ 

我怎麼能得到它?

+0

無論哪種情況下表達,或UNION所有。 – jarlh

+0

你能解釋一下嗎?如果可能:) –

回答

1

使用CASE表達式來選擇非彼得名稱:

select case when friendA <> 'Peter' then friendA else friendB end, firstDate 
from tablename 
where 'Peter' in (friendA, friendB) 

或做UNION ALL

select friendA, firstDate 
from tablename 
where friendB = 'Peter' 
UNION ALL 
select friendB, firstDate 
from tablename 
where friendA = 'Peter' 
+0

它工作正常!非常感謝你;)我會在5分鐘內將它標記爲正確。 –