联合查询

union联合查询

语法:

    select 语句 union 【all|distinct】 select 语句;

示例:

特点:

    条件:两表的查询出来的字段数目必须相同

    字段上会不会进行拼接

    只有在记录上对两个表查询出来的结果进行联合。

 

【all|distinct】

all            显示所有的记录,包含重复

distinct        (缺省)不显示结果集中的重复记录

示例:

作用:

    1、对一个大的数据表进行分表存储,联合查询。

    2、对于同一个表实现不同的需求

需求:对学生表sex=1按年龄降序,sex=0的按年龄升序

连接查询

    由于数据库每一个表存储一个实体信息,实体之间还有联系。根据需求,经常会对具有关系的实体表进行,连接查询。

    连接查询实现的,结果集中的字段数增加,记录数不增加。

连接查询分

cross join

交差连接

语法:

    select * 或字段列表 from 表A cross join表B 【where条件】;

示例:

    

说明:

    结果是一个迪卡尔积,

示例:

使用条件进行连接

演示:

    将stu表中的id为12的记录c_id设置为null(也不是与班级表不匹配)

说明:

    最终的结果少了一个学生的信息。

内连接

inner join

语法:

    select *或字段列表 from 表A 【inner】 join 表B【where子句】;

说明:

    如果内连接没有指定条件,那么结果也是一个迪卡尔积

示例1:

 

外连接

    外连接分为左外连接与右外连接,如果以左边的表为主表那么就叫左外连接;如果以右边的表为主表,那么就叫右外连接。

左外连接

    left join

语法:

    select *或字段列表 from 表A left join 表B on 条件;

示例:

原理:

    1、在内存中产生两个结果集

    2、进行连接

    2.1、使用主表中的第1条记录,去匹配从表中的第1条记录,判断条件是否匹配,如果匹配,将两个表的记录连接在一起保留。如果不成功,保留主表的字段,从表的字段置null

    2.2、使用主表中的第1条记录,去匹配从表中的第2条记录,判断条件是否匹配,如果匹配,将两个表的记录连接在一起保留。如果不成功,保留主表的字段,从表的字段置null

    2.3、使用主表中的第1条记录,去匹配从表中的第3条记录,判断条件是否匹配,如果匹配,将两个表的记录连接在一起保留。如果不成功,保留主表的字段,从表的字段置null

    3、主表中的第1条记录匹配完成后,再使用主表的第2条记录,依次进行匹配。

    。。。。。。

右外连接

    right join

 

内连与外连的区别:

1、内连可以省略条件。

2、外连必须使用条件。

3、内连时,如果条件不匹配,丢弃。

4、外连时,如果条件不匹配,也会保留主表中的字段。从表中的置null

自然连接

    自动根据表中的同名字段作为匹配条件。

nature join

语法:

    select *或字段列表 from 表A natural join 表B;

    自然左外连接

    select *或字段列表 from 表A natural left join 表B where

    自然右外连接

    select *或字段列表 from 表A natural rightjoin 表B where

 

示例:

Mysql的联合查询的更多相关文章

  1. mysql中联合查询

    联合查询union 一个翻译问题的解释: 在mysql的手册中,将连接查询(Join)翻译为联合查询: 而联合查询(union),没有明确翻译. 但: 在通常的书籍或文章中,join被翻译为“连接”查 ...

  2. php+mysql数据库联合查询 left join 右侧数据重复问题

    情况:多表联合查询(三表及以上联合查询) 分析: A left join B left join C left join D 假如: 表B.C.D都与表A关联查询 A left join B 4条数据 ...

  3. MySQL 中联合查询效率分析

    目前我有两个表,一个keywords和一个news表.keyword存放关键词是从news中提取,通newsid进行关联,两表关系如图: keywords中存有20万条数据,news中有2万条数据,现 ...

  4. mysql三表联合查询,结果集合并

    参考: mysql 结果集去重复值并合并成一行 SQL 三表联查 数据库三表连接查询怎么做 合并: MySQL中group_concat函数 完整的语法如下: group_concat([DISTIN ...

  5. mysql及联合查询

    SQL语句分类 DDL 数据库定义语言 定义数据库对象 create alter truncate drop TPL 事务处理语言 rollback commit DCL 数据控制语言 由 GRANT ...

  6. mysql:联合查询

    SELECT t1.name, t2.salary  FROM employee AS t1 INNER JOIN info AS t2 ON t1.name = t2.name; 可以对数据表使用别 ...

  7. MYSQL的联合查询最好是少用,效能差异巨大

    同样的功能,不同的写法,时间和内存占用差了几千倍,不废话,直接上代码 第一种写法: 代码如下: $Rs=DB::get($_ENV['DB'],3,"SELECT * FROM _xiazh ...

  8. thinkphp 使用原生mysql语句 联合查询

    <?php class DelAction extends Action { public function ml(){ // 实例化一个空模型,没有对应任何数据表 $Dao = M(); // ...

  9. mysql三表联合查询

    -- SELECT d.userId, d.userPhoNum, a.orderId, a.productType, b.courseId, b.courseName, c.payJe -- FRO ...

随机推荐

  1. hibernate分页实现

    1.创建分页实体类 public class PageBean { private int page; // 页码 private int rows; // 每页显示行数 private int st ...

  2. Outlook账户迁移帮助

    Outlook账户迁移指南 1. 介绍 开贴聊聊如何迁移Outlook用户账户到另外一台电脑. 相信许多Outlook用户都遇到过这样的情况:买来一台新电脑,安装完Outlook后,想把旧电脑里面的O ...

  3. PowerDesigner 企业架构模型 ( EAM )

    PowerDesigner 企业架构模型 ( EAM ) 说明 file工作数据库框架application网络   目录(?)[+]   一. 企业架构模型 说明 EnterpriseArchite ...

  4. 关于iOS中SQLITE句柄的使用的细节

    1.设计思想:给SQLITE进行封装,利用定义的类别实现方法的简洁,以便达到低耦合效果 控制器代码: #import "ViewController.h" #import &quo ...

  5. Flume + HDFS + Hive日志收集系统

    最近一段时间,负责公司的产品日志埋点与收集工作,搭建了基于Flume+HDFS+Hive日志搜集系统. 一.日志搜集系统架构: 简单画了一下日志搜集系统的架构图,可以看出,flume承担了agent与 ...

  6. <meta 标签的详细使用

    meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与</head>中,meta   标签的用处很多.meta  的属性有两种:na ...

  7. 通过存储过程进行分页查询的SQL示例

    --创建人:zengfanlong --创建时间:-- :: --说明:根据公司简写代码获取当前待同步的气瓶档案数据(分页获取) ALTER PROCEDURE [UP_GasBottles_GetS ...

  8. hdu 5437 Alisha’s Party 优先队列

    Alisha’s Party Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_sh ...

  9. 百度之星资格赛,hdu 4825 XOR SUM

    显然是要建一棵0.1树 事实上非常easy就是二叉树,仅仅只是为了操作简便,即程序的速度,所以就採用静态树,即不动态分配内存,使用较大的全局数组.0是根节点 #include<cstdio> ...

  10. MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等

    参考资料: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-privilege-distribution.html http://www.cl ...