第一:select s.type_id,s.type_name,p.type_name from tdb_goods_types as s left join tdb_goods_types as p
on s.parent_id=p.type_id
第二:select p.type_id,p.type_name,count(s.type_name) from tdb_goods_types as p left join tdb_goods_types as s
on s.parent_id=p.type_id group by p.type_name order by p.type_id
on s.parent_id=p.type_id
第二:select p.type_id,p.type_name,count(s.type_name) from tdb_goods_types as p left join tdb_goods_types as s
on s.parent_id=p.type_id group by p.type_name order by p.type_id
2015-08-24
把原表想象成两个表s(子表),p(父表)然后两个表进行连接:
第一种显示父类,把s表中最后一列的id替换成p表name,连接的条件是子类s的最后一列等于父类p的id,获得的结果是子类id+子类类型+父类类型(s+s+p);
第二种显示子类,连接条件一样,可以参考第一种结果出现的表,只不过显示结果是先父类id+父类类型+子类类型(p+p+s)。
使用左连接可以把没有的为null显示。
第一种显示父类,把s表中最后一列的id替换成p表name,连接的条件是子类s的最后一列等于父类p的id,获得的结果是子类id+子类类型+父类类型(s+s+p);
第二种显示子类,连接条件一样,可以参考第一种结果出现的表,只不过显示结果是先父类id+父类类型+子类类型(p+p+s)。
使用左连接可以把没有的为null显示。
2015-08-24
having是分组group by后的筛选条件,分组后的数据组内再筛选
where则是在分组前筛选
“聚合函数”——SQL语言中一种特殊的函数。例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
where则是在分组前筛选
“聚合函数”——SQL语言中一种特殊的函数。例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。
2015-08-23
windows 下载地址 http://www.navicat.com.cn/download/navicat-for-mysql
2015-08-23