두 개의 IN() 연산자를 전달하는 기준으로 행을 선택하려고했지만 동일한 열에 대해서는 선택하려고합니다. 다음은 시도한 내용입니다.두 개의 IN() 연산자, 하나의 열
SELECT DISTINCT `product_id`, `department`
FROM `products`
WHERE `department` IN ('Star Wars', 'Scarface', 'Winnie the Pooh')
AND `department` IN ('T-Shirts', 'Frisbees', 'Waffles')
쿼리 결과가 없습니다.
products
테이블에는 두 개의 중요한 열, 즉 product_id
및 department
이 포함되어 있습니다. 동일한 제품을 여러 부서에 할당합니다. 예를 들어, 스타 워즈 (Star Wars), 티셔츠 (T-Shirts), 와플 (Waffles)의 세 부서에 배정 된 다스 베이더 티셔츠가 있습니다.
사용자가 "Darth Vader"를 검색하고 "Star Wars"및 "T-Shirt"부서의 결과 만 반환하도록 지정하는 양식을 만들고 있으며 다른 모든 Darth Vader는 건너 뜁니다. 기념품.
이것을 달성하는 가장 좋은 방법은 무엇입니까?
'department'은 VARCHAR입니까? 한 제품을 여러 부서에 어떻게 할당합니까? 'product_id'가 기본 키가 아닌가? 샘플 행을 볼 수 있습니까? – webbiedave
'department'에는 현재 쉼표로 구분 된 목록이 있습니까? 그렇다면'productid','departmentid'를 가진 접합 테이블이 이것을 구조화하는 가장 좋은 방법이 될 것입니다. –
아니면 각 제품에 대해 두 가지 이상의 기록이 있고 스타 워즈와 티셔츠가 기록한 제품을 찾고 싶습니까? 하지만 다른 기록은 없습니까? – Rup