mysql 질문 입니다.
본문
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
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'
SELECT distinct name
FROM A INNER JOIN B ON A.name = B.name and B.point = 'good'
select a.name, b.piont from A as a, B as b
where a.name = b.name and b.point = 'good'
으로 해보세요
답변을 작성하시기 전에 로그인 해주세요.