테스트 사이트 - 개발 중인 베타 버전입니다

쿼리 질문 좀 드리겠습니다. 채택완료

kujira 8년 전 조회 3,737

예를 들어 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개

채택된 답변
+20 포인트

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

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

8년 전

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

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

 

그누보드용 코드로

$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 

로그인 후 평가할 수 있습니다

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

k
8년 전

 

 a

 ㄱ

 4

 ㄱ

 5

 ㄴ

 1

 ㄴ

 2

 ㄴ

 4

 ㄷ

 3

 

 

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

반복문 돌렸을때

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

로그인 후 평가할 수 있습니다

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

 na

 a

 

 

 ㄱ

 45

 

 

 

 

 

 

이런 식으로 설명좀, 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

k
kujira
8년 전
댓글 달아놓았습니다

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

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

로그인