我遇到了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
答案 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")