저는 SQL을 처음 사용하기 때문에 아직이 SQL 쿼리를 가져올 수 없습니다. 현재 가지고있는 내역은 다음과 같습니다.표 A의 레코드를 가져 와서 표 B에 없음
SELECT * FROM tableA
LEFT OUTER JOIN tableB
ON tableA.`full_name` = tableB.`full_name`
WHERE tableB.`id` IS NULL
두 테이블 모두 이름과 주소가 모두 기록 된 레코드입니다. 나는 tableA에있는 사람들을 위해 모든 레코드를 얻을 필요가 있지만 tableB는 가지고 있지 않습니다. 아래의 그림은 내가 필요한 기본적으로 :
문제는 두 사람이 같은 이름,하지만 서로 다른 주소를 가질 수 있다는 것이다. 그래서 궁극적으로 나는 중복 된 이름과 주소를 가진 중복을 제외하고 tableA에있는 모든 사람들의 기록을 얻어야합니다.
SELECT tableA.id FROM tableA
LEFT OUTER JOIN tableB
-- people are the same if fullname and adress match
ON tableA.`full_name` = tableB.`full_name`
AND tableA.adress = tableB.adress
-- filter people that re in tableA only
WHERE tableB.`id` IS NULL
-- filter duplicates
GROUP BY tableA.id
:
id,full_name,first_name,last_name,title,phone,address,city,state,postal_code
당신이 그래서 우리는 이름을 추측하지 않아도 테이블의 테이블 구조를 보여줄 수 :
또한이 답변을 살펴 있나요? :) –
권자, 예. 좋은 생각. :) 나는 그 질문을 편집 할 것이다. – mdance
DISTINCT 이름과 주소 조합이 필요하다는 말입니까? 또는 주소가 여러 개인 사람들을 위해 하나의 주소를 선택해야합니까? –