현재 UNION으로 성공적으로 실행중인 선택 항목이 두 개 있습니다.MYSQL UNION DISTINCT
(SELECT a.user_id,a.updatecontents as city,b.country
FROM userprofiletemp AS a
LEFT JOIN userattributes AS b ON a.user_id=b.user_id
WHERE typeofupdate='city')
UNION DISTINCT
(SELECT a.user_id,c.city,c.country
FROM userverify AS a
LEFT JOIN userlogin AS b ON a.user_id=b.user_id
LEFT JOIN userattributes AS c ON a.user_id=c.user_id
WHERE b.active=1 AND a.verifycity=0);
결과는 다음과 같이 돌아올 :
100 Melbourne Australia
200 NewYork America
300 Tokyo Japan
100 Sydney Australia
캐치 쿼리 (이 경우 100에) 중복 USER_ID를 가져올 것입니다. 첫 번째 쿼리의 세부 정보가 나에게 선행하고 user_id가 두 번째 쿼리에서 반복되는 경우 필자는 필요하지 않습니다.
UNION이 열에 DISTINCT가되는 방법이 있습니까? 이 경우 user_id? 위의 호출을 수행하고 중복되는 user_id를 가져 오는 방법이 없습니까? 두 번째를 삭제하십시오. 쿼리를 다르게 작성하고 UNION을 사용하지 않아야합니까? 정말 하나의 쿼리로 원합니다. SELECT 및 PHP를 사용하여 필요할 경우 중복 제거 할 수 있습니다.
들으 아담
당신이 하위 쿼리 및 외부 하나 개의 그룹으로 함께 올바른 방향으로 나에게 밀어 줄 수있는 어떤 기회에 user_id? 전에 테스트를 해보지 않았지만 빨리 테스트를 통과하지 못했습니다. – Adam
@Adam : 답변을 업데이트했습니다. 그건 쿼리가 어떻게 생겼는지는 알 수 있지만, 맞는지 확인할 수는 없습니다. – zerkms
'x GROUP BY user_id'의 'x'가 무엇을 의미하는지 알아보고 싶다면 (' by ... '어딘가에), 어느 문서/튜토리얼/링크를 권해 주시겠습니까? –