-2

だから私は今、ニュースフィードのようなツイッターをコーディングしていますが、問題は、投稿の前に自分の投稿が4回表示されることです(次のエントリには4つのエントリがあります。それが私の投稿を4回表示する理由だと思います)

SELECT * 
FROM following AS f, posts AS p 
WHERE p.post_user_id = 1 OR 
      (f.follower_id = p.post_user_id AND f.user_id = 1) 
ORDER BY  `p`.`post_time` DESC 

これが現時点での私のコードです。私の投稿が4回表示されるので、間違っていると思いますが。どうすればこれを修正できますか?

4

2 に答える 2

2

基準で使用ORしているため、 whenJOINを受け取っていると思います。代わりに次のようにしてみてください。Cartesian Productpost_user_id = 1

SELECT * 
FROM following AS f
    JOIN posts AS p ON f.follower_id = p.post_user_id
WHERE p.post_user_id = 1 OR f.user_id = 1 
ORDER BY  p.post_time DESC 
于 2013-07-13T16:16:39.723 に答える