连接查询

1 集合的特点:无序性,唯一性

集合的运算:求并集,求交集,求笛卡尔积

表和集合的关系

一张表就是一个集合,每一行就是一个元素

疑问:集合不能重复,但我有可能两行数据完全一样

答:mysql内部每一行,还有一个rowid

mysql> select goos_id,cat_id,goods_name,cat_id from goods,category;
ERROR 1052 (23000): Column 'cat_id' in field list is ambiguous

如果在多表联查时,某一列名在两张或两张以上表都有,则需要在列名前指定表名。

mysql> select goos_id,goods.cat_id,goods_name,category.cat_id from goods,category;

新手1+N模式的改进,使用两表相乘

mysql> select goos_id,goods.cat_id,goods_name,category.cat_id,category.cat_name from goods,category
-> where
-> goods.cat_id = category.cat_id;

考虑:比如A表10000行,B表10000行,都不算大,但是全相乘,在内存中生成一个非常大的数据。10000 * 10000行,需要重新改进。另外,索引没有用上。

左联接的语法:

假设A表在左,不动,B表在A表的右边滑动,A表和B表通过一个关系来筛选B表的行。

语法:

A left jion B on 条件 条件为真,则B表对应的行取出。

A left jion B on 条件

这一块,形成的也是一个结果集,可以看成一张表,设为C,既然如此,可以对C表作查询,自然where,group,having,order by,limit照常使用

问:C表的可以查询的列有那些?

答:A B的列都可以查询

mysql> select goos_id,goods.cat_id,goods_name,category.cat_name from
-> goods left join category
-> on
-> goods.cat_id = category.cat_id;

左连接之后,还能用where等子句么?

答:可以

取出第4个栏目下的商品,以及商品的栏目名

mysql> select goos_id,goods_name,cat_name
-> from goods left join category
-> on goods.cat_id = category.cat_id
-> where goods.cat_id = 4;

2 左连接 右连接 内连接的区别在哪儿?

注意a left join b并不是说a表就一定在左边,只是说在查询数据时,以a表为主

左右连接可以互换的

A left join B,等价于 B right join A

注意:既然左右连接可以互换,尽量使用左连接,出于移植时兼容性方面的考虑。

内连接的特点:

从集合的角度

A inner join B 和 letf/right join 的关系

内连接是左右连接的交集

内连接用inner

取出左右连接的并集,这种叫做外连接,但是在MySQL中不支持

MySQL学习(八)的更多相关文章

  1. 我的MYSQL学习心得(八) 插入 更新 删除

    我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...

  2. 我的MYSQL学习心得(八)

    原文:我的MYSQL学习心得(八) 我的MYSQL学习心得(八) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL ...

  3. 我的MYSQL学习心得(一) 简单语法

    我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  4. 我的MYSQL学习心得(二) 数据类型宽度

    我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  5. 我的MYSQL学习心得(三) 查看字段长度

    我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...

  6. 我的MYSQL学习心得(四) 数据类型

    我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(五) 运 ...

  7. 我的MYSQL学习心得(五) 运算符

    我的MYSQL学习心得(五) 运算符 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据 ...

  8. 我的MYSQL学习心得(六) 函数

    我的MYSQL学习心得(六) 函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  9. 我的MYSQL学习心得(七) 查询

    我的MYSQL学习心得(七) 查询 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

随机推荐

  1. Prometheus监控学习笔记之PromQL 内置函数

    概述 Prometheus 提供了其它大量的内置函数,可以对时序数据进行丰富的处理.某些函数有默认的参数,例如:year(v=vector(time()) instant-vector).其中参数 v ...

  2. BZOJ 1232 安慰奶牛题解

    题目传送门:BZOJ 1232 这是一个边权和点权结合在一起的题,但是因为要从当前点出发并回到原点,所以每个边都被经过了两次,节点至少被经过一次,所以我们将边权重新赋值,所以推出 那么遍历之后,并不是 ...

  3. java调用ws服务

    1.找到ws服务地址,例如:http://www.webxml.com.cn/WebServices/MobileCodeWS.asmx 2.新建项目 3.进入命令行窗口,进入当前项目src目录下,然 ...

  4. topcoder srm 712 div1

    problem1 link 将$a_{0},a_{1},...,a_{n-1}$看做$a_{0}x^{0}+a_{1}x^{1}+...+a_{n-1}x^{n-1}$.那么第一种操作相当于乘以$1+ ...

  5. js字符串方法、数组方法整理

    push 向数组末尾添加一项 返回值为数组的长度: pop 删除数组最后一项: unshift 向数组开头增加一项: shift 删除数组第一项: splice 删除数组中的值:1 splice(n, ...

  6. 带搜索框的jQuery下拉框插件

    由于下拉框的条数有几十个,于是打算找一个可以搜索查找功能的下拉框,刚开始在网上看了几个,都是有浏览器兼容性问题,后来看到这个“带搜索框的jQuery下拉框美化插件 searchable”,看演示代码简 ...

  7. (zhuan) Evolution Strategies as a Scalable Alternative to Reinforcement Learning

    Evolution Strategies as a Scalable Alternative to Reinforcement Learning this blog from: https://blo ...

  8. [AtCode 4104] Small and Large Integers

    题目链接:https://abc093.contest.atcoder.jp/tasks/abc093_b?lang=en 这个题虽然很水,但是还是很容易踩坑,比如我,直接想到了[b,a]之间的长度和 ...

  9. [蓝桥] 算法训练 P0505

    时间限制:1.0s 内存限制:256.0MB 一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积.阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中:而35!就更 ...

  10. MPU6050

    MPU6050: Pitch,Roll,Yaw旋转方向遵循右手定则 pith角  –绕Y轴(俯仰)  范围:±90°  ,与旋转方向相反转是增大   -- 抬头为正,低头为负 roll角  –绕X轴( ...