我从帖子中保存postID和tagsID,将post_tags表中的表格标记为post_id,tag_id
现在我希望在post.php页面中显示与标签匹配的帖子,但是如何进行查询以获取匹配的标签?
import * as mainActions from '../actions/mainActions'
import * as menuActions from '../actions/menuActions'
const actionsToMap = {...mainActions, ...menuActions}
export default connect(mapStateToProps, actionsToMap)(Main)
这里我正在分享我的实际数据结构以及如何将数据保存到每个表中,希望这可以帮助我了解JOIN表吗?
这些是3个表
$stmt = $db->query('SELECT * FROM posts WHERE postID LIKE "%'.$id.'%"');
$stmt->execute();
while($rw = $stmt->fetch()){
}
任何帮助?
答案 0 :(得分:0)
您需要使用JOIN
,例如:
SELECT *
FROM blog_posts bp JOIN blog_posts_tags bpt ON bp.postID = bpt.post_id
JOIN blog_tags bt ON bt.tagID = bpt.tag_id
WHERE bt.tagName = 'Bakeries';
如果您想按id
进行搜索,可以在t.id
条件下使用WHERE
,例如:
SELECT *
FROM blog_posts bp JOIN blog_posts_tags bpt ON bp.postID = bpt.post_id
JOIN blog_tags bt ON bt.tagID = bpt.tag_id
WHERE bt.tagID = 2;
此处,id
对应于帖子和标签的ID(在各个表中),post_id
和tag_id
是post_tags
表中相应外键列的名称。
这是 SQL Fiddle 。