나는 이것이 간단하지만 내 뇌는 오늘 작동하지 않는다고 확신합니다! 피벗 테이블 - - products
및 다른 테이블 attributes
사이의 참조가,이 테이블이 products_to_attributes
하고 pta_aid
(ID 속성)과 pta_pid
(제품을 포함MySQL이 피벗 질문에 합류합니다.
나는 내가 다른 테이블을 가지고 할 수는 그냥 p_id
을 포함한다고 가정 해 봅시다, 테이블 products
이 ID)
희망이 (잘못된) 쿼리 내가 그것을 설명 할 수있는 것보다 내가 더 잘 수행 할 작업을 표시합니다 :
SELECT `p_id` FROM `products`
LEFT JOIN `products_to_attributes` ON (`pta_pid` = `p_id`)
WHERE ((`pta_aid` = '1' OR `pta_aid` = '2') AND(`pta_aid` = '3'))
내가 함께 어디 속성 그룹에 수 있어야합니다
SELECT p_id FROM products PR
WHERE EXISTS (SELECT p_id FROM products_to_attributes WHERE (pta_aid = 1 OR pta_aid=2) AND pta_pid=PR.p_id)
AND EXISTS (SELECT p_id FROM products_to_attributes WHERE pta_aid = 3 AND pta_pid=PR.p_id)
동일한 행의 같은 필드에 두 개의 값을 가질 수 없습니다. –