2011-11-22 27 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 

私のクエリは、NOTE

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

です: YOU直接 "NAME" を使用しないでください..私はREPETITION

を排除する必要があります

私はこのように出力されます:

 
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) 
+0

こんにちはピーターは直接名前を使用しないでください....私は反復名をelimanateしたい.. – raja

+0

こんにちは.........感謝ピーター...私それを得ました.........貴重な答えに感謝します.............. – raja

+0

@PeterPeiGuoそれは彼のために働いてうれしいですが、私はこれがどのように正確に動作するのか不思議です。 leave_dateのチェックはどこに行きますか? – Bryan

0

が、私は "SAM" を解消したいと出力はあなたが

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

こんにちはチューダーあなたは直接名前を使用するべきではありません...... – 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

こんにちはブライアン.... ...アイデアがある........ – raja

関連する問題