请熟悉中值排序法的朋友进来看一下 $sql = "select * from sort LEFT JOIN article ON sort.sortID=article.sortID where sortID=1"; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 例子如下:title idIT新闻 2 软件新闻 3 硬件新闻 4体育新闻 5.....现在想取得IT新闻分类中的所有文章,当然要包括软件和硬件新闻,在文章表中查询时,先要查询分类表id=2的记录信息,然后再与文章表联接,才能得到正确的结果。我的意思是能不能只用一次查询就将IT新闻中的所有文章记录取出来。 select t.*,e.content from tab1 t left join tab2 e on t.id=e.sortid where e.pid=xxx 可能你的数据表结构不好吧,这样的情况,我一般是table sortid title1 IT新闻2 软件新闻table articleid sid title content1 1 xxxx xxxx2 1 xxxx xxxx3 1 xxxx xxxx4 2 xxxx xxxx................. 要想一次查询的完的话,可以试试动网的那样,只不过要加入一个字段才行啊,就是直接用group by 进行分组啊试试 你需要有一个字段来表示3、4归属于2。通常应该有一个root_id来完成该任务title id root_idIT新闻 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) to xuzuning:假如软件新闻下面又分WEB开发,数据库开发等子类,那么列出软件新闻分类中的所有新闻时该语句就有问题了因为root_id=2时,将会把硬件新闻也检索出来,这时肯定要再加以条件(如deep> id=2的deep)这样的话不知道一条语句能实现否? 可以换一种表示方式啊id title sort1 xxxx 012 xxxx 01013 xxxxx 01024 xxxx 025 xxxx 02016 xxxx 010201 稻草人的中值排序概念有个错误。软件新闻如果再分的话,它的下一级的的root_id是它,即3而不是2。 to syre:这种方法我已经实现了。它的深度是有限的,我想换一种方法试试to zairwolf:是吗?据说了解root_id是表示"根",如果像你说的那样应该是parent_id了,而且使用root_id可以方便的生成导航条,用parent_id虽然也能实现,但应该比较麻烦. 中值排序用四个字段。父节点再加上deep和ordernum,基本上可以解决排序问题了。ckong就是那么实现的。 个人认为 syre 的方法是可行的sort tableid sortid name1 01 新闻2 0101 体育新闻3 010101 体坛快报4 02 天气id title sort1 xxxx 012 xxxx 01013 xxxxx 01024 xxxx 025 xxxx 02016 xxxx 010201查询此某分类新闻:select * from sort,news where news.sort=sort.sortid查询某分类及其所有子分类:select * from sort,news where news.sort like concat(sort.sortid,'%')经过调试已经通过望参鉴,如有错误,或是理解错误,请指正。 甚至于只想查找这个分类及它子分类中某个特定分类及它的子类只要好好的利用MYSQL的字符串函数就行了 求一段php授权代码 ajax传输数据的方式 问一个日期转发问题,在线等 mysql中不能添加新记录,请教!!!!!!!!!!!!! phpdesigner 怎么配置自动换行 为什么用foreach输出的结果是倒序的?请给高手帮忙,谢谢。 有两个表tb1,tb2,我要列出tb2中的字段name的内容,要求是如果tb1中也有该名字,则不列出。 分页问题 表单提交问题 SHOPEX4.8.5的商品数据如何转换成ECSHOP2.7.3的数据 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,'%')经过调试已经通过望参鉴,如有错误,或是理解错误,请指正。