我正在开发博客网络应用程序。我不会通过文章 ID 显示类别和 slug。
$result= mysqli_query($mysqli,'SELECT articleId, articleTitle, articleSlug,
articleDescrip, articleDate, articleTags
FROM blog_table
ORDER BY articleId DESC');
我正在从另一个 blog_table 中选择这些列。现在,我在另一个查询中使用articleId 值。
$result2 = mysqli_query($mysqli,'SELECT categoryName, categorySlug
FROM category, cat_links
WHERE category.categoryId = cat_links.categoryId
AND cat_links.articleId = articleId');
while($row2 = mysqli_fetch_array($result2)){
echo $row2['categoryName'];
}
在上面的查询中,我从另外两个表类别和 cate_links 中选择列。 while 循环正在循环所有类别而不是articleId。 我想显示与articleId相关的categoryName,但它显示所有类别。 请您解决一下,如何显示与articleId相关的类别而不是所有类别。
最佳答案
您可以仅使用单个查询来重新表述:
SELECT c.categoryName, c.categorySlug
FROM category c
INNER JOIN cat_links cl
ON c.categoryId = cl.categoryId
WHERE
cl.articleId IN (SELECT articleId FROM blog_table);
这将返回 blog_table
中出现的文章的所有类别元数据,对该表没有任何限制。这与您向我们展示的逻辑一致。如果 blog_table
有一些限制,那么您应该说明它们是什么。
关于php - 选择所有数据而不是id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58691405/