나는 다음과 같은 코드를 실행하면, 내가지고있어 결과 : 표 1 및 표 2 : 나는 두 테이블을 가지고이 코드에서 SQL 하위 쿼리를 올바르게 작성하는 방법은 무엇입니까? 같은
ID column1 column2
34 Org13 Org13
36 Org4 Org2
41 Org3 Org5
:
ID column1 column2
34 NULL NULL
34 Org13 Org13
36 NULL NULL
36 NULL Org2
36 Org4 NULL
41 NULL NULL
41 NULL Org5
41 Org3 NULL
내가 좋아하는 내 결과를보고 싶다. 표 2는 다음 필드가 포함 된 찾아보기 표입니다. id, name
표 1에는 다음 필드 (id, column1, column2)가 있습니다. 1 열 및 2 열 모두 조회 테이블에 외래 키 관계가 있습니다
FK_1: Table1.column1-Table2.id
FK_2: Table1.column2-Table2.id
내가 1 열 및 2 열 값을 꺼내 원하고 있기 때문에 이러한 값 모두 동일한 필드에서 조회이기 때문에 (Table2.name) , 나는 내부 선택을 할 필요가 있다고 생각한다.
내 코드는 다음과 같습니다. 내가 얻는 결과 대신 원하는 결과를 산출 할 수 있도록 어떻게 변경할 수 있습니까? 미리 감사드립니다!
DECLARE @value INT
SET @value = 14
SELECT DISTINCT
Table1.[id] AS ID
, (SELECT DISTINCT
Table2.[name]
WHERE
Table1.column1 =
Table2.id) AS column1
, (SELECT DISTINCT
Table2.[name]
WHERE
Table1.column2 =
Table2.id) AS column2
FROM
Table1
,Table2
WHERE
Table1.[id] = @value
감사합니다. – Cuga
column1 및/또는 column2가 nullable 인 경우 내부 조인 대신 왼쪽 조인을 사용하여 행을 잃지 않도록 할 수 있습니다. –
헤즈 업에 감사드립니다. 이 특별한 경우에, 그들은 nullable이 아니지만, 당신의 충고를 계속 지킬 것입니다. =) – Cuga