我有两个表,一个用于帖子,另一个用于用户。我正在从 'posts' 表中获取所有帖子,并从 tbl_users 获取用户数据(发布该帖子的人)。
目前,我正在使用此查询:
$query = $pdo->prepare("SELECT * FROM `posts`,`tbl_users` WHERE id = user_id_p ORDER BY `post_id` DESC");
$query->execute();
return $query->fetchAll();
它工作正常,它从帖子表中获取所有帖子,并从 tbl_users 获取用户数据。但是,我的问题是我不想获取所有帖子,但我只想获取特定用户(例如仅由 John)发布的那些帖子,以及仅从 tbl_user 获取 John 的用户数据。
(来自 tbl_users 的字段 Id 和来自表帖子的字段 user_id_p 在两个表中是相同的。)
有什么建议或帮助吗?
尽管您的查询正在运行,但它根本没有效率,因为它使用了隐式交叉联接,这会导致非常大的结果集。
使用适当的INNER JOIN并应用以下条件WHERE
:
SELECT u.*, p.*
FROM tbl_users u INNER JOIN posts p
ON u.id = p.user_id_p
WHERE u.id = ?
ORDER BY p.post_id DESC
替换?
为用户的 id。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句