제목 | mysql 다중선택 쿼리문에 관해 조언부탁드립니다. | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
글쓴이 | 아플바 | 작성시각 | 2016/04/26 15:22:08 | ||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
위와 같이 테이블이 존재한다고 할때 cate_id 값이 1과 2인 news_id 1, 3 을 불러오고 싶은데요 쿼리문을 어떻게 짜면 좋을지 조언 부탁드립니다.
select news_id, group_concat(t.cate_id) as cates from t_news as t where t.cate_id in (1,2) group by news_id having length(cates) >= 2 + 1
위와 같이 쿼리문을 짜면 뽑아올수는 있는데 웬지 더 쉬운 방법이 있을듯한데.. 분류 같은것을 다중선택을 할때 테이블을 어떻게 구성하는게 좋은가요?
|
|||||||||||||||||||||||||||
다음글 | 익스플로러에서 다운로드 오류 (5) | ||||||||||||||||||||||||||
이전글 | 웹 개발에 관한 질문 (5) | ||||||||||||||||||||||||||
한대승(불의회상)
/
2016/04/26 21:30:47 /
추천
0
원하는 결과가 정화히 어떤건가요?
|
아플바
/
2016/04/27 09:34:50 /
추천
0
cate_id 값 1과 2를 모두 포함한 news_id 목록을 얻을려고 해요. 위에 테이블로 말하면 news_id 값 1 하고 3 을 포함한 목록이에요. cate_id 값 2 하나로 검색할 때면 cate_id 값 2를 포함한 news_id 목록 1, 2, 3 이구요
|
FOKKIA
/
2016/04/27 09:43:41 /
추천
0
정확하게 테이블인가요 컬럼인가요?
|
FOKKIA
/
2016/04/27 09:51:44 /
추천
0
쿼리문 보니 컬럼이네요. DB 정규화가 가능한 상태라면 정규화를 추천드립니다.
|
아플바
/
2016/04/27 10:49:48 /
추천
0
얻으려고 하는것
|
아플바
/
2016/04/27 10:52:50 /
추천
0
예를 들어 한개 뉴스가 [생활 cae_id: 1] 이라는 카테고리에도 포함되고 [문화 cae_id: 2] 라는 카테고리에도 포함되는 그런 구조를 구현하려고 합니다. 이런 구조는 테이블을 어떻게 구성하면 좋은가요 ?
|
변종원(웅파)
/
2016/04/27 11:33:40 /
추천
0
아무리 봐도 말씀해주신 사항만으로 정규화가 힘든데요... ㅎㅎ 뉴스의 번호가 1번이라면 1 - 1번 카테고리, 1 - 2번 카테고리 형태로 넣으면 됩니다. 이미 그런 구조인데 어떤걸 더 하고 싶으신건지.... 지금 올리신 쿼리는 뉴스 기준이 아니라 카테고리 기준으로 뽑는거죠. |
FOKKIA
/
2016/04/27 13:24:22 /
추천
0
보이는 구조만으로는 다른 대안이 없습니다. news_id 가 유니크한 값으로 지정되어 있는 테이블이 있다면 news_category 라는 테이블을 만들어 외래키로 연결하신 후 JOIN하시는 방법 정도 있겠네요. |