如何按类别获取帖子列表?

mwkjh3gx  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(357)

我有一个mysql表,它将文章与类别相关联。
表“职位类别”:

postId - catId
178 4
177 4
176 4
175 4
174 4
171 4
170 4
169 4
168 4
167 4
166 4
165 4
164 4
163 4
162 4
151 3
150 3
149 3
147 3
1   1

在第170条“post.php?id=170“,我需要列出同一类别的所有职位。我只需要出示职位名称。我该如何列出第四类的所有帖子?
我的sql代码是:

SELECT post_title
FROM posts_categories
INNER JOIN articles ON posts_categories.postId = articles.ID
INNER JOIN cursos ON posts_categories.catId = cursos.catId
WHERE posts_categories.postId ='" . $id . "'
wztqucjr

wztqucjr1#

首先,您的查询有几个问题

INNER JOIN articles ON posts_categories.postId = post.ID

应该是

INNER JOIN articles ON posts_categories.postId = articles.ID

其次,要获得与输入帖子属于同一类别的所有帖子,您需要更改 WHERE 条件到:

WHERE posts_categories.catId = (SELECT catId FROM posts_categories WHERE postId = '" . $id . "')

所以你的问题应该是:

SELECT post_title
FROM posts_categories
INNER JOIN articles ON posts_categories.postId = articles.ID
INNER JOIN cursos ON posts_categories.catId = cursos.catId
WHERE posts_categories.catId = (SELECT catId FROM posts_categories WHERE postId = '" . $id . "')

请注意,此查询将使您对sql注入敞开大门(请参阅此问题)。至少你应该检查一下 $id 是一个纯数字值(您可以使用 is_numeric ),但理想情况下,您应该使用准备好的语句。

相关问题