向高手求教: 外联 + 自联 + 递归,实现在一条sql语句里面

发布时间:2024-05-09 19:55 发布:上海旅游网

问题描述:

news表字段:
ID classid newsid

newsClass表字段:
ID classEname classid parentid domain

news 表和newsClass 的classid 是新闻类别ID,是关联的;
newsClass里面的类别有层次,如类别a下面有类别a1,类别a2,a1下有a11...
newsClass表的里面存的类别有都有parentid,如果是顶级类别,那么parentid=0,
此时对应的domain有值
如果不是子类别,子类别的parentid=上级的classid...
此时对应的domain空值

比如说,我根据news表的classid查询到newsclass表的classid然后查询它的parentid,如果parentid=0,取domain的值,如果parentid<>0,子的parentid=父的classid,那么通过父,再找父的parentid,然后再判断parentid是不是=0,一直找到父为止,取到该新闻的domain值

像以上结构怎么用一条sql语句取a.classid,a.newsid,b.classename,b.domain

问题解答:

数据库设计的这么复杂啊.
多建立几个类别表分别来存储大类,小类,子类不是简单很多?

热点新闻