表 forums {fid,fup,name,type},
表 threads{tid,fid,subject}
其中forums`表的 type 有三个值 (group// 分组, forum//板块,sub//子版块)group1-->
forums1--> // forums1.fup=group1.fid
sub1 //sub1.fup=forums1.fid forums2--> //forums2.fup=group1.fid subA //subA.fup=forums2.fid
subB //subB.fup=forums2.fid forums3-->//forums3.fup=group1.fid sub3 //sub3.fup=forums3.fid
sub4 //sub4.fup=forums3.fid
sub5 //sub5.fup=forums3.fid
group2
....
threads表 总插入数据时会获取当前所在的板块 fid,插入对应的列,forums 表 type 为group 时 下面只会有forums
为forum 时 下面可以有 sub 或者 threads问题是 fid 类型不一定, fid 所对应的 forums 的type 不一定相同.如何 查出 在 某一个 group 中 所有threads 数据, 只要threads , forum 不要sql语句该如何写?我想我说的够详细了 那位高手帮帮忙
表 threads{tid,fid,subject}
其中forums`表的 type 有三个值 (group// 分组, forum//板块,sub//子版块)group1-->
forums1--> // forums1.fup=group1.fid
sub1 //sub1.fup=forums1.fid forums2--> //forums2.fup=group1.fid subA //subA.fup=forums2.fid
subB //subB.fup=forums2.fid forums3-->//forums3.fup=group1.fid sub3 //sub3.fup=forums3.fid
sub4 //sub4.fup=forums3.fid
sub5 //sub5.fup=forums3.fid
group2
....
threads表 总插入数据时会获取当前所在的板块 fid,插入对应的列,forums 表 type 为group 时 下面只会有forums
为forum 时 下面可以有 sub 或者 threads问题是 fid 类型不一定, fid 所对应的 forums 的type 不一定相同.如何 查出 在 某一个 group 中 所有threads 数据, 只要threads , forum 不要sql语句该如何写?我想我说的够详细了 那位高手帮帮忙
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
CREATE TABLE forums (
fid smallint(6) unsigned NOT NULL AUTO_INCREMENT,
fup smallint(6) unsigned NOT NULL DEFAULT '0',
`type` enum('group','forum','sub') NOT NULL DEFAULT 'forum',
`name` char(50) NOT NULL DEFAULT '',
`status` tinyint(1) NOT NULL DEFAULT '0',
displayorder tinyint(3) NOT NULL DEFAULT '0',
threads mediumint(8) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (fid),
KEY forum (`status`,`type`,displayorder),
KEY fup (fup)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;CREATE TABLE threads (
tid mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
fid smallint(6) unsigned NOT NULL DEFAULT '0',
typeid smallint(6) unsigned NOT NULL DEFAULT '0',
author char(15) NOT NULL DEFAULT '',
authorid mediumint(8) unsigned NOT NULL DEFAULT '0',
`subject` char(80) NOT NULL DEFAULT '',
views int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (tid),
KEY typeid (fid,typeid)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; 想要得到forums 表 中每个 type = forum下对应的所有threads 数据
(包括type = forum下级 type=sub 中所有板块数据) 就像 单继承 中 要从基类 查到所有所有派生类,包括派生类的派生类,想要的结果: 根据threads 表的views 排序,取最高的 10条
主要显示下面的内容就行 forums as f , threads as tf.fid ,t.tid ,t.subject ,t.authorid,t.views 这样算清楚么? 好急,, 帮帮忙..