php - 从数据库中获取用户喜欢的所有帖子

标签 php mysql database

我正在尝试获取用户喜欢显示的所有帖子,而不是所有帖子。

我的数据库表如下:

喜欢(列(整数):likeID、likeBy、likeOn)

帖子(列:postID、postBy、文本、likeCount)

用户(列:用户 ID、用户名)

这是我的代码,用于获取用户喜欢的帖子(目前它获取数据库中所有喜欢的帖子,而不是用户喜欢的帖子)

public function likes($user_id, $num){

    $stmt = $this->pdo->prepare("SELECT * FROM `likes`, `posts`, `users` WHERE `likeOn` = `userID` and `user_id` = `postBy` ORDER BY `likeOn` DESC");

    $stmt->bindParam(":num", $num, PDO::PARAM_INT);
    $stmt->execute();
    $tweets = $stmt->fetchAll(PDO::FETCH_OBJ);

关于如何获取用户喜欢的帖子而不是所有喜欢的帖子有什么想法吗?

最佳答案

select p.postID from posts p inner join likes l on l.likeOn=p.postID inner join users u on u.userID = l.likeBy;

我认为上面的查询适合你在 MySQL 数据库中尝试一下。

关于php - 从数据库中获取用户喜欢的所有帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53006194/

相关文章:

java - 在Mysql中使用If then else

sql - Oracle "connect by prior"连同 "max() over partition by"删除重复的子树

php - 数据库允许重复输入外键

php - 印度边境以外的印度商家是否允许使用 Paypal REST API 直接卡付款?如果是,则允许使用哪种货币?

php - Xdebug 在 PHPStorm IDE 中不工作

mysql - SQL,自身连接表,按一定时间跨度内创建的顺序

c++ - sqlite C API,UDATE 数据库

PHP 到 python 包 ('H' )

php - magento 是否收取交易费用

mysql - 五张关系复杂的表的查询