다음을 수행하기 위해 쿼리를 만드는 방법을 찾고 있습니다.
3 개의 테이블을 고려해 봅시다 :
- 제품 : 제품 목록
- 태그 : 태그 목록
- tag_ties : 태그를 제품에 연결하는 데 사용되는 테이블
각 테이블에 대해이 구조를 고려하십시오.
제품:
- id (int, 자동 증가)
- 이름 (varchar, 제품 이름)
태그 :
- id (int 자동 증가)
- 라벨 (varchar, 태그 라벨)
Tag_ties :
- id (int, 자동 증가)
- tag_id (int, 태그 ID 참조)
- ref_id (int, 제품 ID 참조)
내가 원하는 것 :
예를 들어 태그 ID 10, 11 및 12로 태그가 지정된 모든 제품을 확보하십시오.
이 쿼리는 하나 이상의 태그가있는 제품을 반환하므로 작동하지 않습니다.
select
p.name as name,
p.id as id
from
products p inner join tag_ties ties
on
p.id=ties.ref_id
where
ties.ref_id=p.id and
ties.tag_id in (10,11,12)
group by
p.id
order by
p.name asc