채택완료

쿼리 질문 좀 드리겠습니다.

2016-12-30 (금) 18:22:15 4,000

예를 들어 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 포인트

무슨 내용인 지 이해불가...제가 못알아보는거같네요.,. 

답변에 대한 댓글 1개

그러니까.....a필드에 값이 각각 4와 5가 들어간 두 개의 데이터를 가진 ㄱ이라는 사람이 있는데요

select를 할 때 값이 5가 있는사람은 select를 안하게 where에 a <> 5 를 넣으니까 이 사람이 4라는 값을

가진 데이터도 있어서 select가 되잖아요...아예 이 사람은 select가 안되도록 하고 싶다는 말입니다.

서브쿼리를 사용해도 되겠지만

별도의 체크 쿼리를 돌려서 하면 속도면에서 오히려 이득이 날지도 모르겟습니다

그누보드용 코드로

$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<5 

 a

 ㄱ

 4

 ㄱ

 5

 ㄴ

 1

 ㄴ

 2

 ㄴ

 4

 ㄷ

 3

이런식으로 있을때 5를 가지고 있는 ㄱ은 select가 되지 않게 하고 싶습니다. 

반복문 돌렸을때

ㄴ

ㄴ

ㄴ

ㄷ

이렇게 나오게 하고싶습니다.

 na

 a

 ㄱ

 45

이런 식으로 설명좀, 

답변에 대한 댓글 1개

댓글 달아놓았습니다

답변을 작성하려면 로그인이 필요합니다.