MySql查询从给定类别中选择文章?

时间:2014-11-15 22:19:14

标签: mysql

这看起来应该很容易......我有一个类别表,它有catid和parent id。如果类别是root,则其父级为null。我还在表中包含字段id,name,catid的文章。

例如,可能有类别欧洲,子类别德国,法国。然后在文章表中会有catid。

我需要进行查询,以便对于给定的catid,我获得所有具有该catid的父ID的文章。或者,给定父ID以查询同样给我所有具有该父ID的文章。但是,文章表只包含catid,而不是父ID。

我无法弄清楚我是否需​​要做一些连接,工会等的变体之一。

并且意味着应该按文章日期排序。

谢谢!

2 个答案:

答案 0 :(得分:0)

试一试

此查询将为您提供catid = 1的所有文章,它还会为您提供所有文章parent_id = 1

SELECT * FROM articles AS a 
WHERE EXISTS(SELECT 1 FROM categories WHERE catid =  a.catid OR parent_id = a.catid)
AND a.catid = 1

答案 1 :(得分:0)

假设您要查询的catid为5。

SELECT articles.* FROM categories, articles WHERE categories.parentid = 5 AND articles.catid = categories.catid

这个简单的JOIN查询应该为您提供属于parentid直接后代类别的所有文章。

这篇文章可能有所帮助:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/