SQL 쿼리를 따르기 만하면됩니다. 얻을 수있는 방법이 있습니까?mySql 쿼리의 형식 단순화
select *
from product a
where a.brand_id
in (select ib.brand_id from
SUBSCRIBED_CHANNEL ia inner join product ib
where ia.product_id=ib.product_id and ia.user_id=3)
and a.product_id not in (select ib.product_id from SUBSCRIBED_CHANNEL ia
inner join product ib where ia.product_id=ib.product_id and ia.user_id=3)
편집 : 네 개의 테이블 :
제품 (PRODUCT_NAME, PRODUCT_ID, BRAND_ID)
SUBSCRIBED_CHANNEL (USER_ID, PRODUCT_ID)
브랜드 (BRAND_NAME, BRAND_ID)
사용자 (..., USER_ID)
제품을 위해 -> many to one
제품 -> many to many
subscribed_channel -> 중간 테이블
사용자가 가입하지 않은 제품을 구입해야합니다.
예 : Nike Brand의 제품이 xx, yy 및 zz 인 경우
사용자가 xx에만 가입하면 내 쿼리는 yy, zz 만 제공해야합니다.
소식이 [EXTENDED EXPLAIN (http://dev.mysql.com/doc/refman/5.0/en/ explain.html) 또는 이것이 저장 프로 시저의 일부인 경우 [analyze()] (http://dev.mysql.com/doc/refman/5.0/en/procedure-analyse.html)를 참조하십시오. – hd1
조인하는 방법을 읽어보십시오. 에있는 모든 사람들은 아마도 개 doo doo처럼 수행 할 것입니다 – Drew
이 쿼리가 무엇을 하려는지 설명해 주시겠습니까? 나는 그것을 표현하는 쉬운 방법이 있다고 생각한다. 그러나 그것을 읽으면 제품이나 구독 채널에 얼마나 많은 브랜드가 있는지에 대해 꽤 분실하게됩니다. –