khajlk :
나는 두 개의 테이블이 tbl1
(552 행) 및 tbl2
내 PostgreSQL 데이터베이스 (PG 9.5, 64 윈도우)에 동일하지 않은 행 (257 행). 다음과 같은 데이터 (샘플이 여기에 표시)를 포함 TBL1 및 TBL2 표 :
Grp id val1 val2 sum
1 1 112 142 5.2
1 2 124 137 6.7
1 3 136 189 6.8
1 4 112 114 9.8
1 5 130 145 6.1
1 6 142 130 7.7
Grp id sum
1 1 5.2
1 3 6.8
1 6 7.7
표 1의 각 그룹에 대해, 나는 첫 번째 테이블에서 "ID가"두 번째 테이블의 "ID"와 동일하지 않은 행을 선택하려합니다. 예를 들어, 내 예상 출력은 다음과 같습니다
Grp id val1 val2 sum
1 2 124 137 6.7
1 4 112 114 9.8
1 5 130 145 6.1
지금까지이 쿼리를 시도했지만 작동, 빈 출력을 반환하지 않습니다.
SELECT
a.grp, a.id,
a.val1, a.val2, a.sum
FROM tbl1 a
WHERE NOT EXISTS (
SELECT *
FROM tbl2 b WHERE b.grp = a.grp AND b.id != a.id
)
이것에 캔 누군가의 도움을 내가 잘못을하고있는 중이 야하는지 설명?
멀리 통과 :
당신이 사용하고 있기 때문에 NOT EXISTS
조건을 당신은 필요 b.id = a.id
하지 b.id != a.id
:
...................
WHERE b.grp = a.grp AND b.id = a.id
...................