2011-11-22 185 views
0

我遇到了MySQL查詢的問題。
我需要顯示以下輸出:mysql查詢處理重複

 
id | name |  leave_date 
------------- 
1 sam   2011-11-22 
2 david  2011-11-23 
3 cooper  2011-11-27 
4 sam   2011-11-30 

我的查詢是

select * from table1 where leave_date != "2011-11-22" 

注:你不應該直接「名稱」使用。我需要消除重複

我得到這樣的輸出:

 
id | name |  leave_date 
------------- 
2 david  2011-11-23 
3 cooper  2011-11-27 
4 sam   2011-11-30 

但我想消除 「山姆」,所以輸出會是:

 
id | name |  leave_date 
------------- 
2 david  2011-11-23 
3 cooper  2011-11-27 
+0

什麼重複?我沒有看到任何重複記錄名稱sam –

回答

1
select * from table1 where name not in 
(select name from table1 group by name having count(*) > 1) 
+0

嗨皮特不要直接使用名稱....我想elimanate重複名稱.. – raja

+0

嗨.........謝謝彼得...我得到它.........感謝您的可靠答案.............. – raja

+0

@PeterPeiGuo很高興爲他工作,但我很好奇這是如何工作的。 leave_date的支票在哪裏去? – Bryan

0

,但我想消除 「山姆」 和輸出將

select * 
from table1 
where name <> 'sam' 
+0

嗨zohaib你不應該直接使用名稱.... – raja

0

你想根據什麼邏輯消除SAM記錄?

不具有基於什麼來消除SAM,做類似的唯一途徑業務邏輯條件:

select * from table1 where leave_date!="2011-11-22" and name <> 'sam' 
+0

嗨tudor你不應該直接使用名稱...... – raja

0

我認爲這是你在找什麼。如果有人有更漂亮的方式,隨時編輯:

SELECT * from table1 WHERE leave_date != "2011-11-22" 
AND name NOT IN (SELECT name from table1 WHERE leave_date = "2011-11-22") 
+0

嗨感謝bryan .... ...我有一個想法........ – raja