2015-01-08 2 views
0

나는 다음과 같은 한 데이터베이스 구조 :주어진 many to many 관계의 ALL 값을 포함하는 모든 행을 쿼리하는 방법? (!뿐만 아니라 그들 중 하나)

  • 표 1 : 가구 (필드 : ID)
  • 표 2 : 재료 (필드 : ID)
  • 표 3 : MaterialMatching : (필드 : ID, FK_Furniture, FK_Material)는

이 구조는 모든 가구로 많은 자료를 연관시킬 수 있습니다 ...

나는 모든 가구를 조회하는 방법을 알고 그 재료 사이의 논리적 관계가 어디에 몇 가지 특수 소재를 가지고 OR :

select distinct(furniture.ID) from Furniture 
    left join MaterialMatching ON MaterialMatching.FK_Furniture = Furniture.ID 
    left join Material On Material.ID = MaterialMatching.FK_Material 
    where Material.ID IN (<< material ids I want to query>>) 

질문

나는 모든 재료가있는 모든 가구를 조회 할 수 있습니까? 나는 재료 1과 재료 2가있는 모든 가구를 얻고 싶습니다. ...

+0

MySQL 또는 SQLite? –

+0

사실 두 가지 모두 알고 싶습니다 ...하지만 SQLite를 메인 SQL 시스템으로 변경했습니다 ... – prom85

+0

아마 relational-division ... 태그를 추가했습니다 ... 그걸로 솔루션을 찾을 수있었습니다 ... – prom85

답변

0

이것은 상당히 더러운 솔리 션이지만 해결해야합니다. 모든 가구가 지정된 모든 가구를 반환합니다.