php - 使用单个查询从两个不同的 mysql 表中获取数据时遇到问题..!
问题描述
我有两张桌子,一张用于帖子,另一张用于用户。我正在从 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 和来自表 posts 的字段 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。
推荐阅读
- javascript - Google Form 从 viewform URL(或 getPublishedUrl)中找到 editURL
- excel - 将项目添加到列表框时如何运行代码
- python - Python, Change variable type
- vue.js - 如何导出和导入js脚本?
- python - XGBoostRegressor 输出有关可能未使用的参数的警告
- python - 使用 PyTorch 模型预测新样本
- html - 列 bootstrap 5 内元素之间的相等空间
- javascript - 如何在Angular8中单击复选框时从本地存储中添加和删除值
- html - 如何在单个离子行中制作可滚动的离子列
- javascript - React Native Functional Components - undefined 不是一个对象(评估'navigation.navigate')