SQL查询返回两次值

时间:2018-11-10 16:23:02

标签: php mysql 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

这让我回来了:

enter image description here

我想要的是相同的结果,只是没有返回两次。我尝试使用DISCTINCTGROUP BY,但没有成功。感谢您的时间和耐心。 见。

2 个答案:

答案 0 :(得分:0)

发表评论的时间有点长。

我发现您的结果集中没有重复的结果。在成对的结果中,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;

答案 1 :(得分:0)

是的,由于iduser是不同的,因此结果的确不是真正重复的,因此,如果您不使用iduser,请在查询中指定您要使用的字段,然后将iduser排除在外,我认为像这样:

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