1

我有以下两个数据库表:

新闻表:

newsID, topic, categoryID

类别表:

categoryID, title, parentID

我想获取新闻ID、主题、主类别的标题,并且只有如果 parentID 不为 0,即父类别的标题。目前我坚持这样:

SELECT news.newsID, news.topic, category.title
FROM news
LEFT JOIN category
ON news.categoryID = category.categoryID
WHERE news.newsID = 1

如果可用,我仍然缺少父标题。获得它的最佳方式是什么(如果有的话)?

谢谢

4

2 回答 2

2

假设桌子上有一categoryIDnews

SELECT n.newsID, n.topic, c.title, cp.title as parenttitle
FROM news n
LEFT JOIN category c ON n.categoryID = c.categoryID
LEFT JOIN category cp ON cp.categoryID = c.parentID
WHERE n.newsID = 1
于 2012-12-10T20:32:31.840 回答
1

假设您在表中有一个categoryIDnews并且该category表是一个自引用层次结构,这意味着一个孩子parentID引用categoryID同一个表中父行的列:

SELECT          n.newsID, n.topic, c.title, p.title as parentTitle
FROM        news n
LEFT JOIN   category c
ON         n.categoryID = c.categoryID
LEFT JOIN   category p
ON     c.parentID = p.categoryID
WHERE       n.newsID = 1
于 2012-12-10T20:35:30.903 回答