mysql 기초적인 질문 드립니다.
글쓴이: philiosi / 작성시간: 월, 2013/02/18 - 3:37오후
안녕하세요.
Mysql 에서 두 개의 테이블에서 컬럼을 비교해서 카운팅을 해야 하는데요.
예를 들어
members 테이블에 name 이라는 컬럼이 있고,
groups 테이블에는 party 라는 컴럼이 있습니다.
members.name 값으로 groups.party에서 검색( groups.party LIKE "%member.name%")을 해서 이름이 포함되어 있으면 members.name으로 카운팅을 하려고 합니다.
두 개의 테이블에 공유하는 값이 없어서
생각처럼 잘 되지 않네요.
힌트라도 주시면 감사하겠습니다.
고수님들 도움 요청 드립니다.
Forums:
정확한 의도는 잘 모르겠지만, 제가 추측한 것이
정확한 의도는 잘 모르겠지만, 제가 추측한 것이 맞다면 다음과 비슷한 idiom을 적용하면 될 듯하군요.
select count(*) from tabA where tabA.foo in (select bar from tabB)
참고로 테이블이 클 경우는 아주 비효율적입니다. 두 테이블간의 관계를 설정해주는 것이 좋을듯...
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
테스트를 해 보아야 겠네요. 쿼리문 보니 왜
테스트를 해 보아야 겠네요. 쿼리문 보니 왜 비효율적이라고 하시는지 이해될 것 같습니다.
감사합니다.
테스트를 해 보아야 겠네요. 쿼리문 보니 왜
테스트를 해 보아야 겠네요. 쿼리문 보니 왜 비효율적이라고 하시는지 이해될 것 같습니다.
감사합니다.
select count(m.name) from
select count(m.name) from members m, groups g where instr(g.party, m.name) > 0;
돌려보지는 않았습니다.
한 member가 한 group에만 속한다면 members에 group_id를 추가하시는게 좋습니다.
한 member가 여러 group에 속한다면 member_id와 group_id로 구성된 새로운 테이블을 추가하는게 좋습니다.
테이블을 더 만들 생각이 없었는데, 아무래도
테이블을 더 만들 생각이 없었는데, 아무래도 member와 group id정보를 포함한 테이블을 하나 만드는 것이 좋을 것 같다는 생각이 드네요.
한 번 이리 저리 테스트 해보야 겠습니다.
한동안 멘붕이었는데, 길이 좀 보이네요.
감사합니다.
댓글 달기