mysql之左连接、右连接、内连接、全连接、等值连接、交叉连接等
mysql中的各种jion的记录,以备用时查
1、等值连接和内连接,
a.内连接与等值连接效果是相同的,执行效率也相同,只是书写方式不一样,内连接是由SQL 1999规则定的书写方式
比如:
select * from tableA a,tableB b where a.id=b.id
select * from tableA a inner join tableB b on a.id = b.id
b.自然连接是一种特殊的等值连接,他要求两个关系表中进行比较的必须是相同的属性列,无须添加连接条件,并且在结果中消除重复的属性列。
2、非等值连接
比如:
select * from tableA a,tableB b where between a.lowlevel and a.highlevel
3、内连接
内连接只返回在连接过程中有连接匹配的记录。根据连接条件,两个表中都有对应的数据存在的记录,才会返回。
自然连接 NATURE JOIN , 系统以字段名字作为匹配模式(同名字段作为字段,多个同名字段都作为条件),对重复的列去重
由于mysql默认是内连接,所以,join 等同于 inner join
4、左连接 即左外连接
从左表中取出每一条记录,和右表中与所有的记录进行匹配,匹配左表与右表符合相同条件的记录
5、右连接 即右外连接
从右表中取出每一条记录,和左表中与所有的记录进行匹配,匹配左表与右表符合相同条件的记录
6、全连接FULL JOIN 即全外连接
目前mysql不支持,可以使用 UNION 关键字来合并 LEFT JOIN 与 RIGHT JOIN,变通实现 FULL JOIN
7、交叉连接CROSS JOIN ,即笛卡尔积
即被连接的两个数据表的乘积,即笛卡尔积。
在 MySQL 中 CROSS JOIN 与 INNER JOIN 的表现是一样的,在不指定 ON 条件得到的结果都是笛卡尔积,反之取得两个表完全匹配的结果。
备注:
1、内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接也有如下分法分三种:
- 等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。
- 不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
- 自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
2、自然连接:也有分为 自然内连接 和 自然外连接,感觉其实就是内连接和外连接都可以模拟自然连接,使用同名字段,合并字段
3、内连接和外连接
- 内连接:数据内部的连接,连接的多个数据必须存在才能连接
- 外连接:如果负责连接的一个或多个数据不真实存在,则称之为外连接
mysql之左连接、右连接、内连接、全连接、等值连接、交叉连接等的更多相关文章
- 关于数据库的左,右,内,外连接,Union和Union all---------笔记
1.左连接 select a.filed1,a.filed2,b.filed1 from a (左表) left join b(右表) on a.commonfiled = b.commonfiled ...
- Mysql常用sql语句(18)- union 全连接
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 其实Mysql并没有全连接,Oracle才有全连 ...
- MySQL之表连接-> 内连接,左外连接,右外链接,全连接
1.首先创建student库 create database student; 2. 在数据库中创建boy表 和 girl表, mysql> create table boy( -> bo ...
- PHP左、右、内连接
left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录.right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录.inner join: 内连接,又 ...
- 使用navicat连接只开放内网ip连接的数据库
无法通过Navicat来连接MySQL,比较常见的两种问题? 服务器上自己安装的MySQL数据库,且未开通外网登录账号 直接购买服务商的MySQL数据库不创建公网访问,只有内网访问 背景: 公司数 ...
- 云主机不能外网ssh连接,只能内网ssh连接的问题处理
某台服务器外网无法ssh,内网可以ssh连接,ping值延时比较大 安装iftop查看流量 yum install -y iftop iftop界面含义如下 第一行:带宽显示 中间部分:外部连接列表, ...
- Linq左关联 右关联 内关联
1.左连接: var LeftJoin = from emp in ListOfEmployees join dept in ListOfDepartment on emp.DeptID equals ...
- 并集(union和union all的区别)、交集、差集、全连接
一.并集 Union因为要进行重复值扫描,所以效率低.如果合并没有刻意要删除重复行,那么就使用Union All 两个要联合的SQL语句 字段个数必须一样,而且字段类型要“相容”(一致): 如果我们需 ...
- 性能分析之TCP全连接队列占满问题分析及优化过程(转载)
前言 在对一个挡板系统进行测试时,遇到一个由于TCP全连接队列被占满而影响系统性能的问题,这里记录下如何进行分析及解决的. 理解下TCP建立连接过程与队列 从图中明显可以看出建立 TCP 连接的时候, ...
- TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?
前言 网上许多博客针对增大 TCP 半连接队列和全连接队列的方式如下: 增大 TCP 半连接队列的方式是增大 /proc/sys/net/ipv4/tcp_max_syn_backlog: 增大 TC ...
随机推荐
- 洛谷 P5664 Emiya 家今天的饭(84分)
题目传送门 解题思路: 对于每一个列c,f[i][j][k]表示到第i行,第c列选了j个,其它列一共选了k个,然后我们读题意发现只要j>k,那就一定是不合法的,然后统计所有方案,减去所有不合法方 ...
- js 循环与判断语句的几个练习
<script type="text/javascript"> /*1.X3 * 6528 = 3X * 8256 X为一个数字 填入一个数字 使等式成立*/ for ...
- selenium爬取优酷页面并下载图片
from selenium import webdriver import requests driver = webdriver.Chrome() #打开优酷 driver.get("ht ...
- python刷LeetCode:1.两数之和
难度等级:简单 题目描述: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不 ...
- pycharm2018专业版
https://blog.csdn.net/moshanghuali/article/details/94396935 1 下载Pycharm专业版2018.3.1许多人直接在官网直接下载,默认的都是 ...
- WinServer--mstsc
部署项目时,远程连接服务器一直提示连接达最大拒绝连接. mstsc /admin 从sp2后,/console参数就改为/admin了,其实就是登陆到远程服务器的控制台,一般加这个参数是为了在远程桌面 ...
- sklearn 模型评估
原文链接 http://d0evi1.com/sklearn/model_evaluation/ 预测值:pred 真实值:y_test #### 直接用平均值 ``` mean(pred == y_ ...
- [LC] 51. N-Queens
Given an integer n, return all distinct solutions to the n-queens puzzle. Each solution contains a d ...
- html页面监听事件
今天有个需求,类似以下: <div id="a"> <input name="yinzhangfenlei" id="yinzhan ...
- HDU -1166 线段树
#include <algorithm> #include <iostream> #include<sstream> #include<cstring> ...