标签:arc 技术 左外连接 not 就是 建表 去除 ini reference
首先创建两个表 category(种类表),product(商品表),并向其中插入记录
create table category( categoryId int auto_increment, categoryName varchar(10) not null, primary key(categoryId) );
create table product( productId int primary key auto_increment, productName varchar(10) not null, categoryId int, price int, constraint pro_cat foreign key (categoryId) references category(categoryId) );
笛卡尔积其实就是将所有记录全部罗列出来,即使字段为null也会出现在查询结果中
内连接就是去除笛卡尔积中为null的记录
查询每件商品的种类,即使商品种类为null也会出现在查询结果中,因为是左外连接,所以product中全部记录都会出现的,因此productId=4,categoryId=null这条记录不会被剔除
查询product表中每件商品的种类,因为是右外连接,所以category表中所有记录都会出现,但是productId=4这条记录categoryId=null,所以结果中不会有这条记录
1.分组显示左外连接查询product的商品信息,但是因为lining与nike的categoryId相同,所以只显示了一个
2.继续查询,但是要显示每种categoryId对应的product数量
1.查询每个分类中最便宜的商品的categoryId,categoryName,price
2.查询每个分类中最便宜的商品的categoryId,categoryName,productName,price,但是productName与price并没有对应......
3.我们将每类商品最小的price对应的categoryId与category.categoryId对比就可以找到与之对应的商品名称
4.这时再加一个限定条件,将price不是最小值得商品剔除
5.再进一步美化,我们只需要查询每种商品中最便宜商品的所有信息以及种类名即可
标签:arc 技术 左外连接 not 就是 建表 去除 ini reference
原文地址:http://www.cnblogs.com/Hangtutu/p/8012630.html