作者JoeHorn (每天都在公司玩OLG)
看板Database
标题Re: [SQL ] 疑问:查询分类和子分类数目
时间Thu May 22 11:06:08 2008
※ 引述《chrisQQ (ChrisLiu)》之铭言:
: 使用版本:MySQL 5.0
: 问题:
: TABLE
: id type sub title
: 1 1 a 大分类A
: 2 1 b 大分类B
: 3 1 c 大分类C
: 4 2 a A的子分类1
: 5 2 a A的子分类2
: 6 2 a A的子分类3
: 7 2 b B的子分类1
: 8 2 b B的子分类2
: 9 2 c C的子分类1
资料库架构有问题。
应该改成这样:
id type sub title
1 1 0 大分类A
2 1 0 大分类B
3 1 0 大分类C
4 2 1 A的子分类1
5 2 1 A的子分类2
6 2 1 A的子分类3
7 2 2 B的子分类1
8 2 2 B的子分类2
9 2 3 C的子分类1
这里的 sub 代表所属分类父阶层的 id 。
接着, SQL 就可以这样下:
SELECT `parent`.`title` , COUNT( `sub`.`id` ) AS `count`
FROM `
[TABLE名称]` `parent` , `
[TABLE名称]` `sub`
WHERE `parent`.`sub` = `sub`.`id`
GROUP BY `parent`.`sub`
如果要 TABLE 里面的阶层数不只两层,
在 WHERE 里面作 `parent`.`type` 的条件限制就好。
--
我不寂寞, 因为烟在我口,
我不寂寞, 因为酒在我手,
我不寂寞, 因为还有寂寞陪着我.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.173.168.187
※ 编辑: JoeHorn 来自: 218.173.168.187 (05/22 11:13)
1F:推 chrisQQ:对… 资料库的部份是我笔误 囧 您说的才是对的 05/22 12:32