这看起来应该很容易......我有一个类别表,它有catid和parent id。如果类别是root,则其父级为null。我还在表中包含字段id,name,catid的文章。
例如,可能有类别欧洲,子类别德国,法国。然后在文章表中会有catid。
我需要进行查询,以便对于给定的catid,我获得所有具有该catid的父ID的文章。或者,给定父ID以查询同样给我所有具有该父ID的文章。但是,文章表只包含catid,而不是父ID。
我无法弄清楚我是否需要做一些连接,工会等的变体之一。
并且意味着应该按文章日期排序。
谢谢!
答案 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/