mysql查询处理重复

时间:2011-11-22 05:17:42

标签: 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

但是我想要消除“sam”,所以输出将是:

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

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

  

但我想消除“sam”,输出将是

select * 
from table1
where name <> 'sam'

答案 2 :(得分:0)

你想根据什么逻辑消除sam记录?

没有基于消除sam的业务逻辑条件,唯一的方法是:

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

答案 3 :(得分:0)

我认为这就是你要找的东西。如果有人有更漂亮的方式,请随时编辑:

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