제품 표가 있으며 제품에는 색상, 유형 등 여러 가지 필터 사양이 지정 될 수 있습니다. 제품에 지정된 필터 값은 찾아보기 테이블에 저장됩니다. 테이블은 좀 더 복잡하지만 난에서 작업 할 수있는 간단한 예는 다음과 같습니다 : 사용자가 '블랙'제품을 선택웹 응용 프로그램에서의 제품 필터링
Products
-----------------
ProdID | Code | Price
1 | A1 | 2.99
2 | B1 | 10.99
10 | F4 | 20.00
Filters
-----------------
FilterID | Name
1 | Black
2 | Blue
4 | Round
10 | Waterproof
ProductFilterLookup
-------------------
ProdID | FilterID
1 | 1
1 | 4
1 | 10
2 | 1
2 | 10
10 | 1
그래서 경우 '방수'(에서 FilterId의 1, 10) 예상 된 결과 것 ProdID가 1과 2 인 경우 해당 제품에만 해당 필터가 모두 있기 때문입니다.
제품에 할당 된 모든 필터가있을 수 있습니다. 모든 필터 값을 가진 필터를 선택한 모든 필터를 얻고 싶습니다.
LINQ 또는 SQL에서이 작업을 수행 할 수 있으며 가능한 한 효율적으로 수행해야합니다 (성능 현명한).
몇 가지 샘플 표 d 추가 ata와 기대되는 결과. – jarlh
나를 위해 3 가지 방법이 있습니다. 첫 번째는 원시 SQL 문을 SQL Server로 보내고, 두 번째는 Entity Framwork를 사용하고 세 번째는 형식화 된 DataSets를 사용하는 것입니다. 여러분의 응용 프로그램 유형을 안전하게 만들 수 있습니다. – Radinator
그러나 귀하의 SQL 명령 : 당신은 필터 테이블과 제품 테이블과 필터 테이블에있는 하위 SELECT를 사용하여 FilterID가 귀하의 값과 동일한 조회 테이블을 통해 SELECT를 만들어야 만합니다. – Radinator