我有桌子
答案(援助,user_id,...) - 帖子表
用户(userid,name,...)
我需要在我的家庭Feed中使用php和mysql显示我关注的人和帖子的帖子。但目前它没有按预期工作。每个帖子显示7次。
curent select query
<?php
$my_id = $_SESSION['user_id'];
$sql_query = "SELECT * FROM answers left join users on users.userid = answers.user_id LEFT join followers on followers.user_one = answers.user_id WHERE answers.user_id= '$my_id' ORDER BY answers.date_created DESC";
?>
答案 0 :(得分:1)
没看到你也想要回复你的帖子。试试下面的sql:
select * from answers, users, (select user_one user_id from followers where user_two='$my_id' union select '$my_id' user_id) a where answers.user_id=users.user_id and answers.user_id=a.user_id;
你的sql中有错误:SELECT * FROM回答在users.userid = answers.user_id上的左连接用户LEFT加入关注者关注者.user_one = answers.user_id WHERE answers.user_id ='$ my_id'ORDER BY answers.date_created DESC”。
第二个左连接应该是followers.user_two = ansers.user_id,where语句应该是followers.user_one ='$ my_id';
答案 1 :(得分:0)
此处的一个选项是将您的查询短语为两个查询的并集。下面的工会的前半部分查找您关注的人发布的所有帖子。工会的后半部分找到了你的所有帖子。
SELECT a.*
FROM answers a
INNER JOIN followers f
ON (a.user_id = f.user_two AND f.user_one = $my_id)
UNION ALL
SELECT a.* FROM answers WHERE user_id = $my_id;
我不是PHP人员,但希望您可以轻松地将上述查询调整到您的代码中。