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.再进一步美化,我们只需要查询每种商品中最便宜商品的所有信息以及种类名即可

  • 相关阅读:
    73. Set Matrix Zeroes
    289. Game of Live
    212. Word Search II
    79. Word Search
    142. Linked List Cycle II
    141. Linked List Cycle
    287. Find the Duplicate Number
    260. Single Number III
    137. Single Number II
    Oracle EBS中有关Form的触发器的执行顺序
  • 原文地址:https://www.cnblogs.com/Hangtutu/p/8012630.html
Copyright © 2011-2022 走看看