У меня есть два выбора, которые я в настоящее время успешно выполняю как UNION.
(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
Уловка в том, что запрос возвращает повторяющийся user_id (в данном случае 100). Детали в первом запросе имеют для меня прецедент, и если user_id повторяется во втором запросе, мне он не нужен.
Есть ли способ заставить UNION быть DISTINCT в столбце? в этом случае user_id? Есть ли способ выполнить вышеуказанный вызов и не получить дубликаты user_id - отбросьте второй. Следует ли переписать запрос по-другому и не использовать UNION. На самом деле хочу, чтобы это был один запрос - я могу использовать SELECT и PHP, чтобы при необходимости отсеять дубликаты.
thx Adam