2014-10-03 4 views
0

두 개의 열 (materialID | 이름)이있는 테이블 "PackagingType"과 ID 및 재료 세부 정보가있는 다른 테이블 "materials"가 있습니다.다른 테이블 열의 값을 기준으로 한 테이블 필터링

"포장 유형"의 각 이름에 사용할 수있는 재료를 지정하고 싶습니다 (예 : 자재 ID 열에 1,3,4,5가 있음).

이 재료 ID를 재료 테이블과 일치시키고 세부 정보를 추출해야합니다.

올바른 방법은 무엇입니까? 1,3,4,5로 데이터를 저장하는 것이 올바른지, 구문이 어떻게 생겼는지 확실하지 않은가요?

+1

조인 : http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ – xQbert

답변

1

관계형 데이터베이스 디자인에서는 값을 하나의 셀에 결합하지 않습니다. 예외가 있지만 아주 적습니다. 이는 정규화 된 데이터가 아니며 향후 쿼리 및 분석을 어렵게 만들거나 복잡하게 만듭니다. 따라서 PackagingType은 다른 materialID에 대해 동일한 이름을 여러 번 가져야합니다.

그래서 표는 간단하게 가입 할 거라고 재료 설명과 함께 결과를 얻으려면 다음

MaterialID Name 
1   PackageA 
3   PackageA 
4   PackageA 
5   PackageA 

등의 데이터를 가질 것이다.

SELECT PT.MaterialID, PT.Name, M.Detail 
FROM PackagingType PT 
INNER JOIN Materials M 
on PT.MaterialID = M.MaterialID 
관련 문제