我有以下两个数据库表:
新闻表格:

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

如果有的话,我还是没找到家长的头衔。如果有的话,最有效的方法是什么?
谢谢

最佳答案

假设您在categoryID表中有一个news列,并且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

关于mysql - 2个使用parentID联接一个查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13808674/

10-14 00:35