테이블 (tblRecords
)에서 선택하고 다른 테이블()에서 반복되는 값을 가진 행을 제외하려고합니다. .다른 테이블의 고유하지 않은 필드에 할당 된 필드가있는 결과 제외
현재 테이블 :
tblRecords: tblPerson:
+------------+-------------+ +------------+------------+
| CustomerID | OrderID | | PersonID | UserID |
+------------+-------------+ +------------+------------+
| 101 | 1 | | 8 | 3004 |
| 18 | 7 | | 5 | 81 |
| 8 | 1 | | 19 | 100 |
| 100 | 2 | | 19 | 101 |
+------------+-------------+ +------------+------------+
원하는 출력 : 시각적 예를 들어
+------------+-------------+
| CustomerID | OrderID |
+------------+-------------+
| 18 | 7 |
| 8 | 1 |
+------------+-------------+
이 단순화 된 예입니다, 그렇게 나쁘지 테이블 디자인의 징후를 용서하시기 바랍니다. PersonID
'19'는 (는) 번에 두 번 이상 표시되므로 모든 결과를 tblRecords
에서 제외하고자합니다. CustomerID
은 UserID
과 동일하며 반복되는 숫자는 PersonID
입니다. 따라서 100과 101은 제외됩니다.
반복되는 값으로 그룹화하는 대신 해결책은 내 쿼리의 WHERE 절에서 NOT EXISTS
을 사용하는 것입니다. 나는 tblRecords
에서 결과를 제외 알 수 있도록 CustomerID
값은 다음 반복 PersonID
에 나타납니다 곳 쿼리를 해결하는 방법을 이해하지
SELECT *
FROM tblRecords
WHERE NOT EXISTS (
SELECT PersonID
FROM tblPeople
GROUP BY PersonID
HAVING COUNT(PersonID) > 1
)
: 여기가 예상대로 작동하지 않는 쓴 쿼리입니다 tblPerson
. 현재 하위 쿼리는 내가 제외시키려는 정확한 값을 선택합니다. 나는 그들이 논리적으로 CustomerID
에서 어떻게 검색되는지를 모른다.
질문을 편집하고 샘플 데이터와 원하는 결과를 제공하십시오. 당신이 설명에서 하나의 테이블에 대해 말하고있는 것처럼 보이기 때문에 질문은 오히려 비관적이지만, 질의는 두 가지를 언급합니다. –
질문 개선에 대한 정보는 [this] (http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/)를 참조하십시오. – HABO
@GordonLinoff 질문을 다시 작성했습니다. 희망적으로 그것은 더 분명하다. – user7733611