Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL代码试图从我关注的人那里获取数据时遇到一些问题+;我自己_Mysql_Sql - Fatal编程技术网

MySQL代码试图从我关注的人那里获取数据时遇到一些问题+;我自己

MySQL代码试图从我关注的人那里获取数据时遇到一些问题+;我自己,mysql,sql,Mysql,Sql,所以我现在正在编写一个类似推特的新闻提要,但问题是我自己的帖子在帖子之前显示了4次(下面有4个条目,我想这就是为什么它会显示我的帖子4次) 这是我目前的代码。虽然我认为这是错误的,因为它会显示我的帖子4次。如何解决此问题?由于您在加入标准中使用了或,我相信当post\u user\u id=1时,您将收到笛卡尔积。请尝试以下方法: SELECT * FROM following AS f JOIN posts AS p ON f.follower_id = p.post_user_id

所以我现在正在编写一个类似推特的新闻提要,但问题是我自己的帖子在帖子之前显示了4次(下面有4个条目,我想这就是为什么它会显示我的帖子4次)


这是我目前的代码。虽然我认为这是错误的,因为它会显示我的帖子4次。如何解决此问题?

由于您在
加入
标准中使用了
,我相信当
post\u user\u 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 

既然看起来你真的不在乎后面的
中的字段,而只想要帖子,那么使用
左连接怎么样

SELECT p.* 
FROM posts p
LEFT JOIN following f ON f.follower_id=1 AND p.post_user_id = f.user_id
WHERE post_user_id=1 OR f.user_id IS NOT NULL
ORDER BY  `p`.`post_time` DESC 

.

请添加表结构、示例数据和预期输出。您真的希望结果来自“following”的数据,还是仅在查询中使用它来查找是否应显示帖子?
SELECT p.* 
FROM posts p
LEFT JOIN following f ON f.follower_id=1 AND p.post_user_id = f.user_id
WHERE post_user_id=1 OR f.user_id IS NOT NULL
ORDER BY  `p`.`post_time` DESC