Mysql
 sql >> Base de données >  >> RDS >> Mysql

MYSQL UNION DISTINCT

Non. Vous ne pouvez pas spécifier le champ exact avec lequel vous devez faire la distinction. Cela ne fonctionne qu'avec la ligne entière.

À partir de votre problème - faites simplement de votre requête une sous-requête et dans une externe GROUP BY user_id

SELECT * FROM 
(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) x
GROUP BY user_id