+ -
当前位置:首页 → 问答吧 → 求条sql语句

求条sql语句

时间:2011-07-27

来源:互联网

有两张表,一张产品表(product),一张分类表(category)
产品表有三个字段id,name,cat_id(分类id)
分类表有三个字段id,name,parent_id(父类id)
我现在要查每一个分类的一个产品,如果某个分类没有产品,就用特殊字符表示(0或者null的都可以)有些分类没有数据
CREATE TABLE `product` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) DEFAULT NULL,
`cat_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`parent_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

作者: xjpphp   发布时间: 2011-07-27

结果集的行数和c表的行数相同,显示出来的产品只要属于该类别即可;如果某个类别没有产品,产品列显示为NULL:
SELECT c.name,MAX(p.name) FROM category AS c 
  LEFT JOIN product AS p 
ON p.cat_id=c.id
GROUP BY c.name

作者: liuxinran819   发布时间: 2011-07-27