각 이메일에 대해 '관련성 높은'레코드를 얻으려면 집계 함수를 사용할 수 있습니다.
SELECT emailAddress, max(concat(fullName,',',address1,',',address2))
FROM table
GROUP BY emailAddress
그것은 각 이메일 주소에 대해 가장 부유 한 행을 리턴하지만 모든 데이터가 하나 개의 문자열 (쉼표로 구분) 이내에 반환됩니다 그래서 당신은 구문 분석해야합니다 :
나는이 쿼리는 당신에게 가장 좋은 결과를 얻을 것이라고 생각 어떻게 든.
성능이 더 문제가 없다 당신은 당신이 하나를 갈 수있는 별도의 필드에 설정 정상적인 결과를 얻을하려는 경우 :
각 이메일에 대한
SELECT table.emailAddress, fullName, address1, address2
FROM
table JOIN
(SELECT emailAddress,
max(concat(fullName,address1,address2)) as bestRowInOneString
FROM table
GROUP BY emailAddress
) bestRowsSubQuery
ON
concat(table.fullname,table.address1,table.address2) = bestRowsSubQuery.bestRowInOneString
AND table.emailAddress = bestRowsSubQuery.emailAddress
"관련성 높은 레코드"란 무엇을 의미합니까? 동일한 이메일을 가진 다른 행이 있습니까? 아니면 다른 컬럼? 또는? – Andomar
안녕하세요, 데이터베이스의 위 두 행을 가정 해 봅시다. 빈 필드가있는 행 대신 연락처 정보가있는 행을 가져 오려고합니다. – ChrisS