I가 다음과 같은 데이터베이스 구조 :두 테이블을 결합하는 방법은 무엇입니까?
`Products`
-------------------------------------
ID | ProductNo
-------------------------------------
1 | 3340
2 | 3450
`ProductVariants`
-------------------------------------
ID | MasterID (ref to `Products`.`ID`) | ProductNo
-------------------------------------
1 | 1 | 3341
2 | 1 | 3342
3 | 2 | 3451
어떻게이 제품을 얻고 자신의 제품이 하나 개의 쿼리 변종합니까?
편집 :
원하는 결과 :
MasterID | IsMaster | ProductNo | VariantProductNo
1 | 1 | 3340 | null
1 | 0 | 3340 | 3341
1 | 0 | 3340 | 3342
2 | 1 | 3450 | null
2 | 0 | 3450 | 3451
이것은 할 것이다 !! 이것은 좋은 방법입니까 아니면 실행 쿼리의 속도를 늦출 수 있습니까? – frgtv10
나는 그것을하는 더 효율적인 방법을 생각할 수 없다 (누군가는 방법을 알고 있을지도 모른다). UNION이 아닌 UNION ALL을 사용하면보다 효율적으로 만들 수 있습니다 (일반 UNION은 중복 된 항목을 제거하므로 약간의 추가 처리가 필요하지만이 경우에는 IsMaster 필드로 인해 중복이 없어야 함). 또한 VariantProductNo는 고유합니다 (제품 변형에서 ID를 가져 오지 않는 경우와 쿼리의 첫 번째 부분에서 일치하는 null 필드). – Kickstart