쿼리 질문 좀 드리겠습니다. 채택완료
예를 들어 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개
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
서브쿼리를 사용해도 되겠지만
별도의 체크 쿼리를 돌려서 하면 속도면에서 오히려 이득이 날지도 모르겟습니다
그누보드용 코드로
$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) ");
댓글을 작성하려면 로그인이 필요합니다.
|
a |
ㄱ |
4 |
ㄱ |
5 |
ㄴ |
1 |
ㄴ |
2 |
ㄴ |
4 |
ㄷ |
3 |
이런식으로 있을때 5를 가지고 있는 ㄱ은 select가 되지 않게 하고 싶습니다.
반복문 돌렸을때
ㄴ
ㄴ
ㄴ
ㄷ
이렇게 나오게 하고싶습니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
select를 할 때 값이 5가 있는사람은 select를 안하게 where에 a <> 5 를 넣으니까 이 사람이 4라는 값을
가진 데이터도 있어서 select가 되잖아요...아예 이 사람은 select가 안되도록 하고 싶다는 말입니다.