基本含义

  连接就是指两个或两个以上的表(数据源) “连接起来成为一个数据源”。

  连接语法的基本形式:from 表1 【连接方式】 join 表2 【on 连接条件】;

  连接的结果可以当做一个“表”来使用。

1.内连接:

  语法:from 表1 【inner】 join 表2 on 表1.字段1=表2.字段2;

  含义:找出(过滤)在交叉连接的结果表中的表1的字段1的值等于表2的字段2的值的那些行。

例如:以下是两个相关的表格product_type 和 product

         

  可以使用内连接使其结合成为一张表,这里因为两个表中都使用了protype_id,所以使用t1. t2.来代替表1和表2

  select * from product as t1 join `product_type` as t2 on t1.protype_id=t2.protype_id where 1;

结果如下:

            

   也可以指定只列出其中部分字段:

  select t1.pro_id,pro_name,price, t2.protype_name from product as t1 join `product_type` as t2 on t1.protype_id=t2.protype_id where 1;           

结果如下:

            

2.左/右(外)连接  

  形式:from  表1  left/right  [outer]  join   表2   on  连接条件。

  说明:

  1,这里,left/right是关键字。

  2,连接条件跟内连接一样。

  3,含义是:内连接的结果基础上,加上左/右边表中所有不符合连接条件的数据,相应放右/左边表的字段的位置就自动补为“null”值。

3.子查询 in

  子查询就是把一个查询的结果当做另一个查询的条件

  in的基本语法形式为:

    where 操作数 in(值1,值2,...);

  则in子查询就是:

    where 操作数 in(列子查询);

  含义:

    表示该操作数(字段值) 等于该子查询的其中任意一个只,就算满足条件。

例如:找出上表中所有带“电”字的类别的产品

  第一步:找出所有带“电”字的类别ID:

  select protype_id from product_type where protype_name like '%电%';

  第二步:根据结果找出这些类别的产品:

  select * from product where protype_id in (1,3);

  实际上就等于

  select * from product where protype_id in(

  select protype_id from product_type where protype_name like '%电%'

  );

4.联合查询

  联合查询的关键字是: union

  基本含义:

  联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。

  两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。

  语法形式:

  select 语句1

  union

  select 语句2;

  说明: 

  1,两个select语句的输出段(结果字段)一样数目一样,应用中通常类型一样才有意义。

  2,结果集中的字段以第一个select语句的字段为准。

  3,第一个select语句的字段可以做别名,但如果做别名,则后续的where,group,order等子句应该用该别名。

  4,联合查询默认是会消除重复项的(DISTINCT),要想不消除,则必须明确些“ALL”。

  5,如果要对整个联合结果进行排序或limit,则应该对各自的select语句加括号:

  (select 语句1)

  union

  (select 语句2)

  order  by .....  limit ....;

  

MySQL连接查询(多表查询)的更多相关文章

  1. mysql 数据操作 多表查询 目录

    mysql 数据操作 多表查询 准备 多表连接查询介绍 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多 ...

  2. MySQL数据库语法-多表查询练习一

    MySQL数据库语法-多表查询练习一 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要介绍的多表查询的外键约束,以及如何使用外链接和内连接查询数据信息. 一.数据表和测试 ...

  3. mysql 数据操作 多表查询 准备

    为什么需要多表查询: 因为我们不可能把所有数据都放在一张表里 我们把不同数据存储 放在一张一张不同表 方便管理,但我们为了方便管理,把数据拆分到一张一张表去存储. 但是数据还是一个整体,数据之间是有关 ...

  4. day04 mysql单表查询 多表查询 pymysql的使用

    day04 mysql pymysql   一.单表查询     1.having过滤         一般用作二次筛选             也可以用作一次筛选(残缺的: 只能筛选select里面 ...

  5. mysql数据库之单表查询

    单标查询 单表查询语句 关键字执行的优先级 简单查询 where约束 group by 聚合函数 HAVING过滤 order by 查询排序 LIMIT限制查询的记录数 使用正则表达式查询 单表查询 ...

  6. MySQL中的联表查询与子查询

    0.准备数据 1.内连接:INNER JOIN 2.左连接:LEFT JOIN 3.右连接:RIGHT JOIN 4.USING子句 扩展知识点: 0.表别名的使用: 1.group by的用法 2. ...

  7. mysql 数据操作 单表查询 目录

    mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...

  8. mysql 数据操作 单表查询 where 约束 目录

    mysql 数据操作 单表查询 where约束 between and or mysql 数据操作 单表查询 where约束 is null in mysql 数据操作 单表查询 where约束 li ...

  9. mysql 数据操作 单表查询 group by 分组 目录

    mysql 数据操作 单表查询 group by 介绍 mysql 数据操作 单表查询 group by 聚合函数 mysql 数据操作 单表查询 group by 聚合函数 没有group by情况 ...

  10. MySQL数据库之单表查询中关键字的执行顺序

    目录 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 2 执行顺序 3 关键字使用语法 MySQL数据库之单表查询中关键字的执行顺序 1 语法顺序 select distinct from ...

随机推荐

  1. js document.load 和 document.ready 区别

    document.ready和onload的区别——JavaScript文档加载完成事件 页面加载完成有两种事件 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件) 二是onloa ...

  2. c# 24种设计模式5原型模式(Prototype)

    前言 原型模式其实C# Object中已经提供了一个Clone( )方法,平时很少用到,最近读Retrofit源码时候看到有这种使用方式. 定义 原型模式就是在系统clone()标记的基础上,对Clo ...

  3. HDU_2112(最短路)

    经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬 ...

  4. BZOJ2721或洛谷1445 [Violet]樱花

    BZOJ原题链接 洛谷原题链接 其实推导很简单,只不过我太菜了想不到...又双叒叕去看题解 简单写下推导过程. 原方程:\[\dfrac{1}{x} + \dfrac{1}{y} = \dfrac{1 ...

  5. centos7 下安装mongodb指南;

    1.下载:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.1.tgz; 2.解压缩; 3.文件存储在mongodb文件 ...

  6. 关于redis和memcached的一些想法

    看了redis和memcached,想到自己前几年以前会把内存分配及调用和程序写在一起.确实是不合理的.这样的话,主进程就会越来越大,而且模块也不是完全独立.不能做到松耦合. 实质就是把内存的读写I/ ...

  7. Spring 属性注入(二)BeanWrapper 结构

    Spring 属性注入(二)BeanWrapper 结构 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) BeanWrap ...

  8. Python 单列

    1.__new__内置方法 在对类进行实例化时自动执行 功能1:为对象分配空间 功能2:返回空间的引用 2.单列实现方法 class MusicPlayer: # 记录对象内存引用,初始值为None ...

  9. 使用delphi 10.2 开发linux 上的webservice

    前几天做了linux下apache的开发,今天做一个linux 下的webservice ,以供客户端调用. 闲话少说,直接干. 新建一个工程.选other...,选择如图. 继续输入服务名 然后就生 ...

  10. String拼接

    1. String[] members=ArrayDATA_IDS; String usernames = ""; for(String id :members) { userna ...