zoukankan      html  css  js  c++  java
  • join and group

    1.创建表

    首先创建两个表 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)
    );
    

      

    2.笛卡尔积

    笛卡尔积其实就是将所有记录全部罗列出来,即使字段为null也会出现在查询结果中

    3.内连接

    内连接就是去除笛卡尔积中为null的记录

    4.左外连接

    查询每件商品的种类,即使商品种类为null也会出现在查询结果中,因为是左外连接,所以product中全部记录都会出现的,因此productId=4,categoryId=null这条记录不会被剔除

    5.右外连接

    查询product表中每件商品的种类,因为是右外连接,所以category表中所有记录都会出现,但是productId=4这条记录categoryId=null,所以结果中不会有这条记录

    6.Group by

    1.分组显示左外连接查询product的商品信息,但是因为lining与nike的categoryId相同,所以只显示了一个

    2.继续查询,但是要显示每种categoryId对应的product数量

    7.实例

    1.查询每个分类中最便宜的商品的categoryId,categoryName,price

    2.查询每个分类中最便宜的商品的categoryId,categoryName,productName,price,但是productName与price并没有对应......

    3.我们将每类商品最小的price对应的categoryId与category.categoryId对比就可以找到与之对应的商品名称

    4.这时再加一个限定条件,将price不是最小值得商品剔除

    5.再进一步美化,我们只需要查询每种商品中最便宜商品的所有信息以及种类名即可

  • 相关阅读:
    用户体验评价
    第十三周总结
    第十二周总结
    单词统计
    第十一周总结
    冲刺(十一)
    用户模板和用户场景
    冲刺(十)
    冲刺(九)
    IOS 学习记录
  • 原文地址:https://www.cnblogs.com/Hangtutu/p/8012630.html
Copyright © 2011-2022 走看看