У меня есть запрос mysql, который возвращает необходимые данные, но не возвращает уникальные строки. Как я могу гарантировать, что возвращаются только уникальные строки?
Вот мой запрос
SELECT a.follow_id, a.user_id, a.following, b.donor_id, b.firstname, b.lastname, b.image
FROM followers a
INNER JOIN donors b ON a.user_id = b.user_id
WHERE following = 257
UNION DISTINCT
SELECT a.follow_id, a.user_id, a.following, b.donor_id, b.firstname, b.lastname, b.image
FROM followers a
INNER JOIN donors b ON a.following = b.user_id
WHERE a.user_id = 257
, который возвращает несколько результатов для user_id. Как я могу убедиться, что результаты не удвоены, по user_id?
Я попробовал группу, но, должно быть, я что-то делаю не так, потому что не могу заставить ее работать.
Результаты, которые я получаю
**follow_id user_id following donor_id firstname lastname** image
13 224 257 124 Just A Donor 224.jpg
11 257 224 124 Just A Donor 224.jpg
9 257 222 116 Dummy Donor 222.jpg
Понял ... просто пришлось группировать по donor_id
SELECT * FROM
(SELECT a.follow_id, a.user_id, a.following, b.donor_id, b.firstname, b.lastname, b.image
FROM followers a
INNER JOIN donors b ON a.user_id = b.user_id
WHERE following = 257
UNION DISTINCT
SELECT a.follow_id, a.user_id, a.following, b.donor_id, b.firstname, b.lastname, b.image
FROM followers a
INNER JOIN donors b ON a.following = b.user_id
WHERE a.user_id = 257 ) AS t
GROUP BY donor_id