예를 들어 a컬럼에 값이 1,2,3,4,5 가 들어갈 수 있을때
ㄱ이라는 사람은 a=2,a=4,a=5 이렇게 세 개의 값을 가진 데이터가 있구요
ㄴ이라는 사람은 a=2,a=3 이렇게 두 개의 값을 가진 데이터가 있습니다.
ㄷ이라는 사람은 a=1,a=2,a=3,a=4 이렇게 네 개의 값을 가진 데이터가 있습니다.
select를 a의 값이 5가 있는 ㄱ은 아예 2,4의 데이터도 출력하고 싶지 않습니다.
ㄴ과 ㄷ만 출력하고 싶습니다.
ㄴ은 두 개, ㄷ은 네 개가 출력되도록이요....
쿼리를 어떤식으로 짜야될까요?
|
답변 5개 / 댓글 2개
채택된 답변
+20 포인트
서브쿼리를 사용해도 되겠지만
별도의 체크 쿼리를 돌려서 하면 속도면에서 오히려 이득이 날지도 모르겟습니다
그누보드용 코드로
$row=sql_fetch("select count(*) as cnt from table where a ='5'");
if($row[cnt]) $add_qry = "where mb_id <>'ㄱ' "; else $add_qry ='';
$result = sql_query("select * from table $add_qry");
서브쿼리 사용
$result = sql_query("select * from table where mb_id <> (select mb_id from table where a='5' limit 1) ");
답변을 작성하려면 로그인이 필요합니다.
select를 할 때 값이 5가 있는사람은 select를 안하게 where에 a <> 5 를 넣으니까 이 사람이 4라는 값을
가진 데이터도 있어서 select가 되잖아요...아예 이 사람은 select가 안되도록 하고 싶다는 말입니다.