SQL 프로그래밍에 익숙하지 않아서 쉽게 들어갈 수 있습니다.SQL Left/Inner/Normal Join 대 where 조건문
현재 외부 매개 변수 중 하나의 값을 기반으로 결과를 출력하는 쿼리를 작성하고 있습니다. 구조는 현재 다음과 같이 찾고 :
는@ShowEntireCategory bit = 0
select distinct
p.pk
p.name
--other columns
from dbo.Project P
--bunch of left joins
where p.Status = 'Open'
--other conditions
내가 구현하는 시도하고있다 : ShowEntireCategory의 값이 1 일 때 그것은 내부의 모든 하위 범주의 기록을 표시합니다 (라디오 버튼의 선택을 통해 프로그램 변경) 카테고리. 값이 0이면 선택한 하위 범주의 레코드 만 표시되고 해당 범주의 다른 하위 범주는 그대로 유지됩니다.
최선의 방법으로 a research을 수행했으며 narrowed down을 WHERE 문 또는 JOINs으로 수정했습니다.
내가 알고 싶은 것은 : 이러한 접근법 중 어느 것을 시나리오에 사용해야합니까? 필자의 경우 우선 순위는 최적화 (최소 실행 시간) 및 구현 용이성입니다.
참고 : 여기 내 주요 목표는 여기에서 사용할 준비가 된 코드를받지 않는 것입니다 (예를 들어 코드 스 니펫이 환영 할만 함). 더 나은 방법을 알고 싶습니다. 그 방향으로 계속 연구 할 수 있습니다. .
미리 감사드립니다.
UPDATE가
내가 데이터베이스 구조에 대한 추가 연구를 수행하고, 질문
하나와 관련된 매개 변수를 좁힐 관리해야하는 것은 포함 dbo.Project 테이블입니다 : PK, CategoryKey (FK) (두 번째 표에 연결된 이름), 이름, 설명 및 다른 모든 매개 변수와 관련이 없습니다.
두 번째 것은 PK, AreaNumber, 이름, CategoryKey (FK), IsCategory (1 = 카테고리, 0 = 카테고리가 아님)가 포함 된 dbo.Area 테이블입니다.
미안하지만, 나는 급변하는 환경에서 일한다. 이것은 내가 쥐어 짜낼 수있는만큼이다. 충분하지 않다면 알려주십시오.
이것은 범주와 하위 범주가 데이터베이스에 저장되는 방법에 따라 다소 달라질 수 있습니다. – BrandonM
@BrandonM 명확하게 설명해 주시겠습니까? 지금 당장 대답 할 수있는 유일한 방법은 "하나의 범주에 4 개의 하위 범주가 있으며 각 하위 범주에는 자체 식별자가 있습니다"입니다. –
테이블 구조와 샘플 데이터를 제공 할 수 있습니까?이상적인 SQL 문으로 우리는 테스트 환경을 설정할 수 있습니다. – Philipp