Php 使用id'查询以获取最新的10行;这是另一张桌子的
我的网站上有一个跟踪系统,你可以跟踪其他用户 在该网站的主页上,我试图让它显示你跟踪的用户的最新10篇帖子(不是每个人跟踪10篇,而是总共10篇) 我有一个名为Php 使用id'查询以获取最新的10行;这是另一张桌子的,php,mysql,greatest-n-per-group,Php,Mysql,Greatest N Per Group,我的网站上有一个跟踪系统,你可以跟踪其他用户 在该网站的主页上,我试图让它显示你跟踪的用户的最新10篇帖子(不是每个人跟踪10篇,而是总共10篇) 我有一个名为followers的表,其结构如下: id | user_id | following_id 1 20 52 2 20 55 1 20 75 ... ... ... 其中,user\u id是您
followers
的表,其结构如下:
id | user_id | following_id
1 20 52
2 20 55
1 20 75
... ... ...
其中,user\u id
是您的id,follow\u id
是您正在跟踪的用户的id
然后我有一个名为posts
的表,其中收集了来自用户的所有帖子
我现在要做的是创建一个查询,从您跟踪的用户那里获取最新的10篇文章(按日期排序)
以下是我迄今为止所做的:
/* Select all users this person is following */
$stmt = $cxn->prepare('SELECT following_id FROM followers WHERE user_id = ?');
$stmt->bind_param('i', $user_id);
$stmt->execute();
$result = $stmt->get_result();
/* If a result exists, continue. */
if ($result->num_rows) {
while ($row = $result->fetch_assoc()) {
// not sure what to do here, how would the query look?
}
} else {
echo "You aren't following anyone!";
}
我不确定要从你跟踪的人那里获得总共10篇最新帖子,该查询是什么
请帮忙 你的思路是正确的,但你的主要选择仍然是帖子,而不是追随者——这些都是子查询。你可能想要这样的东西
SELECT * FROM posts WHERE poster_id IN
(SELECT following_id FROM followers WHERE user_id = ?)
ORDER BY posted_at DESC
LIMIT 10
您编写的查询仍然存在,但它被查询包围,以获取实际的帖子。用poster\u id和poster\u at替换您在posts表中所称的内容。您的思路是正确的,但您的主要选择仍然是posts,而不是follower-这些是子查询。你可能想要这样的东西
SELECT * FROM posts WHERE poster_id IN
(SELECT following_id FROM followers WHERE user_id = ?)
ORDER BY posted_at DESC
LIMIT 10
SELECT *
FROM posts p
JOIN followers f
ON p.author_id = f.following_id
WHERE f.user_id = ?
ORDER BY p.date DESC
LIMIT 10;
您编写的查询仍然存在,但它被查询包围,以获取实际的帖子。用poster\u id和poster\u at替换您在posts表中所称的内容。您的思路是正确的,但您的主要选择仍然是posts,而不是follower-这些是子查询。你可能想要这样的东西
SELECT * FROM posts WHERE poster_id IN
(SELECT following_id FROM followers WHERE user_id = ?)
ORDER BY posted_at DESC
LIMIT 10
SELECT *
FROM posts p
JOIN followers f
ON p.author_id = f.following_id
WHERE f.user_id = ?
ORDER BY p.date DESC
LIMIT 10;
您编写的查询仍然存在,但它被查询包围,以获取实际的帖子。用poster\u id和poster\u at替换您在posts表中所称的内容。您的思路是正确的,但您的主要选择仍然是posts,而不是follower-这些是子查询。你可能想要这样的东西
SELECT * FROM posts WHERE poster_id IN
(SELECT following_id FROM followers WHERE user_id = ?)
ORDER BY posted_at DESC
LIMIT 10
SELECT *
FROM posts p
JOIN followers f
ON p.author_id = f.following_id
WHERE f.user_id = ?
ORDER BY p.date DESC
LIMIT 10;
您编写的查询仍然存在,但它被查询包围,以获取实际的帖子。用poster\u id和poster\u at替换您在posts表中所称的内容。Related:Related:Related:Related:Related:
SELECT *
FROM posts p
JOIN followers f
ON p.author_id = f.following_id
WHERE f.user_id = ?
ORDER BY p.date DESC
LIMIT 10;