简体   繁体   English

内部联接功能重复内容

[英]Inner join function duplicates content

My query duplicates the entries I get. 我的查询重复了我得到的条目。 I use two Inner join. 我使用两个内部联接。 The strange fact is that I made this code 6 months ago and, as far as I remember, it worked. 奇怪的事实是,我六个月前编写了此代码,据我所记得,它确实起作用了。 Now, I come back to my project and it does not work anymore (it duplicates)... 现在,我回到我的项目,它不再起作用了(重复)。

The Query : 查询:

$sql_principale_news = "SELECT sys_pre_values.LKey,bx_blogs_posts.PostUri,bx_blogs_posts.PostCaption,bx_blogs_posts.PostText,bx_blogs_posts.PostText,bx_blogs_posts.Categories,
      bx_blogs_posts.PostDate,bx_blogs_posts.Views,bx_blogs_posts.CommentsCount,bx_blogs_posts.allowView,Profiles.Avatar,Profiles.ID,Profiles.FirstName,Profiles.LastName,Profiles.ProfileType
      FROM bx_blogs_posts
      INNER JOIN Profiles ON bx_blogs_posts.OwnerID=Profiles.ID AND Profiles.Status='Active'
      INNER JOIN sys_pre_values ON bx_blogs_posts.NewsType=sys_pre_values.Value AND sys_pre_values.Value!=sys_pre_values.LKey
      WHERE bx_blogs_posts.OpenNews=1 
        AND bx_blogs_posts.PostStatus='approval'
        AND bx_blogs_posts.Categories IN ('".$innov24_config."')
        AND (bx_blogs_posts.allowView=3 
          OR bx_blogs_posts.allowView=4 
          OR (bx_blogs_posts.allowView=5 AND bx_blogs_posts.OwnerID IN ('".$bigfriendlist."')) 
          OR bx_blogs_posts.allowView IN ('".$privacy_OthersToMe."') 
          OR bx_blogs_posts.allowView IN ('".$privacy_MeToOthers."'))
      ORDER BY bx_blogs_posts.PostDate DESC LIMIT ".$_GET['debut'].",".$nb_affichage_par_page."";

The résult : 结果 :

It duplicates each entry 3 times. 它将每个条目重复3次。

同一条目各出现3次

The problem 问题

If I delete the second inner join, there is no more duplicate. 如果删除第二个内部联接,则不再重复。

$sql_principale_news = "SELECT sys_pre_values.LKey,bx_blogs_posts.PostUri,bx_blogs_posts.PostCaption,bx_blogs_posts.PostText,bx_blogs_posts.PostText,bx_blogs_posts.Categories,
      bx_blogs_posts.PostDate,bx_blogs_posts.Views,bx_blogs_posts.CommentsCount,bx_blogs_posts.allowView,Profiles.Avatar,Profiles.ID,Profiles.FirstName,Profiles.LastName,Profiles.ProfileType
      FROM bx_blogs_posts
      INNER JOIN Profiles ON bx_blogs_posts.OwnerID=Profiles.ID AND Profiles.Status='Active'
      // DELETED CODE // INNER JOIN sys_pre_values ON bx_blogs_posts.NewsType=sys_pre_values.Value AND sys_pre_values.Value!=sys_pre_values.LKey// END DELETED CODE //
      WHERE bx_blogs_posts.OpenNews=1 
        AND bx_blogs_posts.PostStatus='approval'
        AND bx_blogs_posts.Categories IN ('".$innov24_config."')
        AND (bx_blogs_posts.allowView=3 
          OR bx_blogs_posts.allowView=4 
          OR (bx_blogs_posts.allowView=5 AND bx_blogs_posts.OwnerID IN ('".$bigfriendlist."')) 
          OR bx_blogs_posts.allowView IN ('".$privacy_OthersToMe."') 
          OR bx_blogs_posts.allowView IN ('".$privacy_MeToOthers."'))
      ORDER BY bx_blogs_posts.PostDate DESC LIMIT ".$_GET['debut'].",".$nb_affichage_par_page."";

Does anyone could say why? 有谁能说为什么?

[EDIT] Here are the Tables structures [编辑]这是表格结构

sys_pre_values

档案1/3

档案2/3

档案3/3

bx_blogs_posts

you may use GROUP BY 您可以使用GROUP BY

try this 尝试这个

   $sql_principale_news = "SELECT sys_pre_values.LKey,bx_blogs_posts.PostUri,bx_blogs_posts.PostCaption,bx_blogs_posts.PostText,bx_blogs_posts.PostText,bx_blogs_posts.Categories,
  bx_blogs_posts.PostDate,bx_blogs_posts.Views,bx_blogs_posts.CommentsCount,bx_blogs_posts.allowView,Profiles.Avatar,Profiles.ID,Profiles.FirstName,Profiles.LastName,Profiles.ProfileType
  FROM bx_blogs_posts
  INNER JOIN Profiles ON bx_blogs_posts.OwnerID=Profiles.ID AND Profiles.Status='Active'
   INNER JOIN sys_pre_values ON bx_blogs_posts.NewsType=sys_pre_values.Value AND sys_pre_values.Value!=sys_pre_values.LKey// END DELETED CODE //
  WHERE bx_blogs_posts.OpenNews=1 
    AND bx_blogs_posts.PostStatus='approval'
    AND bx_blogs_posts.Categories IN ('".$innov24_config."')
    AND (bx_blogs_posts.allowView=3 
      OR bx_blogs_posts.allowView=4 
      OR (bx_blogs_posts.allowView=5 AND bx_blogs_posts.OwnerID IN ('".$bigfriendlist."')) 
      OR bx_blogs_posts.allowView IN ('".$privacy_OthersToMe."') 
      OR bx_blogs_posts.allowView IN ('".$privacy_MeToOthers."'))
 GROUP BY sys_pre_values.LKey
  ORDER BY bx_blogs_posts.PostDate DESC LIMIT ".$_GET['debut'].",".$nb_affichage_par_page."";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM