SQL-запрос возвращает значение дважды

Привет всем, это мой первый пост на Stackoverflow 🙂

Моя проблема может быть простой для вас, ребята, но я не могу понять, что не так …

SELECT *
FROM ecrit INNER JOIN
friends f
ON f.idfriend = ecrit.idAuteurPost
WHERE ecrit.idAuteurPost = 2 OR f.isvalidate = 1
ORDER BY dateEcrit DESC

Верните мне это:

введите описание изображения здесь

То, что я хочу, это один и тот же результат, только не возвращенный дважды. Я пытался использовать DISCTINCT а также GROUP BY но безуспешно Спасибо за ваше время и терпение.
До встречи.

1

Решение

Это немного долго для комментария.

Я не вижу дублированных результатов в вашем наборе результатов. Есть пары результатов, где id_user отличается между ними. Неясно, что вы хотите, но, возможно, exists является:

SELECT e.*
FROM ecrit e
WHERE e.idAuteurPost = 2 OR
EXISTS (SELECT 1
FROM friends f
WHERE f.idfriend = e.idAuteurPost AND
f.isvalidate = 1
)
ORDER BY e.dateEcrit DESC;
0

Другие решения

Да, ваши результаты на самом деле не дублируются, поскольку iduser отличается, поэтому, если вы не используете iduser, укажите в своем запросе поля, которые вы ДЕЛАЕТЕ, и оставьте iduser вне, я думаю, что это будет делать, как так:

SELECT ecrit.dateEcrit, friends.isValidate, ... FROM
...
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector