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

mysql 질문 입니다. 채택완료

스니음 3년 전 조회 2,008

table A
seq    name
---------------------
1    aaa    
2    bbb    

 

table B
no    name    point
----------------------
1    aaa    good
2    aaa    good
3    aaa    good
4    aaa    bad
5    bbb    good
6    bbb    good

 

요런 테이블이 있고 현재는

SELECT distinct name
FROM A INNER JOIN B ON A.name = B.name
WHERE B.point = 'good'

 

이런식으로 쿼리가 되어 있는데요. 문제는 애시당초 point가 전체가 good 인거만 가져오게 하려고 하는데

aaa 같은 경우 하나라도 bad가 있으면 결과값에 없어야 하는데 aaa도 리스트에 나옵니다.

 

이럴 경우 어떻게 쿼리를 짜야 할까요?

 

 

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

답변 3개

채택된 답변
+20 포인트
3년 전

</p>

<p>SELECT A.name, GROUP_CONCAT(DISTINCT B.point) B_point

FROM A INNER JOIN B ON A.name = B.name 

GROUP BY A.name

HAVING GROUP_CONCAT(DISTINCT B.point) = 'good'</p>

<p>

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

답변에 대한 댓글 1개

스니음
3년 전
감사합니다.

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

플래토
3년 전

select a.name, b.piont from A as a, B as b

where a.name = b.name and b.point = 'good'

 

으로 해보세요

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

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

e
3년 전

SELECT distinct name
FROM A INNER JOIN B ON A.name = B.name and B.point = 'good'

 

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

답변에 대한 댓글 1개

스니음
3년 전
안됩니다. ㅜ.ㅜ

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

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

로그인