$sql = "select * from sort LEFT JOIN article ON sort.sortID=article.sortID where sortID=1";
解决方案 »
- 为什么PHP输出的xml的时候,如果数据是中文,怎么都成了问号?
- PHP文件上传到服务器运行后出现的一个奇怪问题,自动把"\"改成"\\"
- php中文乱码问题
- 恕小弟菜,mysql admin怎样查看数据表中的内容!?
- PHP连接MySQL典型问题?
- 最后确认一下,不需要身份验证的的SMTP服务器就能通过mail()发邮件??
- 在链接mysql时出现一个小问题!
- 一个高深的有意思的关于表单提交的问题
- 一个SQL查询语句(列出重复记录),以前问过据然没人会
- 用PHP如何获取linux系统一个目录下文件的数目?
- phplib学得太浅,我读入文件后显示的页面格式如css、 图片都没了背景色也变了,,大虾帮忙说说是怎么回事、该怎么做啊。
- 一个简单问题,在线等
title id
IT新闻 2
软件新闻 3
硬件新闻 4
体育新闻 5
.....
现在想取得IT新闻分类中的所有文章,当然要包括软件和硬件新闻,
在文章表中查询时,先要查询分类表id=2的记录信息,然后再与文章表联接,才能得到正确的结果。
我的意思是能不能只用一次查询就将IT新闻中的所有文章记录取出来。
table sort
id title
1 IT新闻
2 软件新闻table article
id sid title content
1 1 xxxx xxxx
2 1 xxxx xxxx
3 1 xxxx xxxx
4 2 xxxx xxxx
.................
通常应该有一个root_id来完成该任务title id root_id
IT新闻 2 0
软件新闻 3 2
硬件新闻 4 2
体育新闻 5 0检索时
select * form sort,new where sort.id=new.sortID and (sort.id=2 or sort.root_id=2)
假如软件新闻下面又分WEB开发,数据库开发等子类,
那么列出软件新闻分类中的所有新闻时该语句就有问题了
因为root_id=2时,将会把硬件新闻也检索出来,
这时肯定要再加以条件(如deep> id=2的deep)
这样的话不知道一条语句能实现否?
id title sort
1 xxxx 01
2 xxxx 0101
3 xxxxx 0102
4 xxxx 02
5 xxxx 0201
6 xxxx 010201
软件新闻如果再分的话,它的下一级的的root_id是它,即3而不是2。
这种方法我已经实现了。它的深度是有限的,我想换一种方法试试
to zairwolf:
是吗?据说了解root_id是表示"根",如果像你说的那样应该是parent_id了,
而且使用root_id可以方便的生成导航条,用parent_id虽然也能实现,但应该比较麻烦.
sort table
id sortid name
1 01 新闻
2 0101 体育新闻
3 010101 体坛快报
4 02 天气id title sort
1 xxxx 01
2 xxxx 0101
3 xxxxx 0102
4 xxxx 02
5 xxxx 0201
6 xxxx 010201
查询此某分类新闻:
select * from sort,news where news.sort=sort.sortid
查询某分类及其所有子分类:
select * from sort,news where news.sort like concat(sort.sortid,'%')经过调试已经通过望参鉴,如有错误,或是理解错误,请指正。