1、内联查询

>inner join 或 join

2、外联查询

(1)左连接

>left outer join 或 left join

(2)右连接

>right outer join 或 right join

(3)完全外连接

>full outer join 或  full join


代码详解:

1、数据准备

(1)创建一个新的数据库

>create database testjoin;

(2)创建两个表person、card

>create table person(

-> id int ,

-> name varchar(20),

-> cardid int);

>create table card(

-> id int,

-> name varchar(20));

(3)添加数据

>insert into card values (1,'饭卡');

>insert into card values (2,'建行卡');

>insert into card values (3,'农行卡');

>insert into card values (4,'工商卡');

>insert into card values (5,'邮政卡');

>insert into person values (1,'张三',1);

>insert into person values (2,'李四',3);

>insert into person values(3,"王五",6);


2、查询

——上述两个表并没有创建外键

(1)inner join查询

>select * from person inner join card on person.cardid = card.id;

 

【注】内联查询,其实就是查询两张表中相等的数据(有关联的数据,上述是cardid对应card.id)

(2)left join (左外连接)

> select * from person left join card on person.cardid = card.id;

 

【注】左外连接就是将写在left join左侧的表的数据全部取出来而右侧的数据有的取出来如果没有补上NULL

(3)right join (右外连接)

>select * from card right join person on person.cardid = card.id;

 

【注】右外连接就是将写在right join右侧的表的数据全部取出来而左侧的数据有的取出来如果没有补上NULL

(4)full join(全外连接)

> select * from card full join person on person.cardid = card.id;

 

上述可知:mysql是不支持全连接的,可以通过将左连接与右连接用union加起来的方式:

>select * from card right join person on person.cardid = card.id union select * from card left join person on person.cardid = card.id;

 

【注】如上图:会将左边右边的表的数据全部显示出来,彼此之间没有的彼此间补NULL

                关注个人公众号,有福利哦……

5、mysql的连接查询的更多相关文章

  1. MySql的连接查询

    类似于oracle的连接查询,mysql连接查询也有左外连接.右外连接.内连接查询.但是,不同的是没有直接 的全外连接查询. 这里介绍MySql的连接查询: 这里已两张表为例:STUDENT 表 和 ...

  2. MySQL查询优化:连接查询排序limit

    MySQL查询优化:连接查询排序limit(join.order by.limit语句) 2013-02-27      个评论       收藏    我要投稿   MySQL查询优化:连接查询排序 ...

  3. 【杂记】mysql 左右连接查询中的NULL的数据筛选问题,查询NULL设置默认值,DATE_FORMAT函数

    MySQL左右连接查询中的NULL的数据筛选问题 xpression 为 Null,则 IsNull 将返回 True:否则 IsNull 将返回 False. 如果 expression 由多个变量 ...

  4. MySQL常见连接查询

    在实际应用中,由于不同的业务需求,一般的select查询语句无法满足要求.所以就需要了解一些MySQL的高级查询方式 内连接 inner join 典型的连接查询,有相等(=)连接和不等(<&g ...

  5. Mysql表连接查询

    原文地址: https://www.cnblogs.com/qiuqiuqiu/p/6442791.html 1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等 ...

  6. 【mysql】连接查询

  7. MySQL之连接查询

    主要是多表查询和连接查询

  8. mysql之连接查询、联合查询、子查询

    本文内容: 连接查询 联合查询 子查询 from子查询 where子查询 exists子查询 首发日期:2018-04-11 连接查询: 连接查询就是将多个表联合起来查询,连接查询方式有内连接.外连接 ...

  9. mysql(连接查询和数据库设计)

    --创建学生表 create table students ( id int unsigned not null auto_increment primary key, name varchar(20 ...

  10. LeetCode 175. Combine Two Tables 【MySQL中连接查询on和where的区别】

    一.题目 175. Combine Two Tables 二.分析 连接查询的时候要考虑where和on的区别 where : 查询时,连接的时候是必须严格满足条件的,满足了才会加入到临时表中. on ...

随机推荐

  1. numpy.eye() 生成对角矩阵

    numpy.eye(N,M=None, k=0, dtype=<type 'float'>) 关注第一个第三个参数就行了 第一个参数:输出方阵(行数=列数)的规模,即行数或列数 第三个参数 ...

  2. MSE初始化和基本操作

    MSE默认的登录账户密码可能是:login/password (admin/admin). l 初始化配置完成后,下次使用root登录时,仅显示Linux shell提示符,而不是安装脚本. 您可以随 ...

  3. Redis为什么要自己实现一个SDS

    Redis是使用C语言开发的,在C语言中没有字符串这种数据类型,字符串大都是通过字符数组实现的,但是使用字符数组有以下不足: 1. 字符数组的长度都是固定,容易发生空指针2. 获取字符数组的长度的时候 ...

  4. leetcode 0208

    目录 ✅ 108. 将有序数组转换为二叉搜索树 描述 解答 py [tdo rev 0208]py知识:if not x: 和if x is not None:和if not x is None:使用 ...

  5. 确定BP神经网络中的节点数

    输入层 输入层节点数=输入向量维数 MNIST例子中,单张MNIST图片大小为28*28,reshape为一维数组,长度为784,所以输入层节点数为784: network = Network([78 ...

  6. 大数据篇:YARN

    YARN YARN是什么? YARN是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率.资源统一管理和数据共享等方面带来了巨大 ...

  7. ImageMagick PDF到JPG有时会导致黑色背景

    convert -verbose -density 300 -quality 50 -background white -alpha remove 0.pdf 0.jpg magick convert ...

  8. Solr搜索引擎服务器学习笔记

    Solr简介 采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功能 ...

  9. 十八 OGNL特殊符号的作用,#,%,$

    主要有哪些字符? #:获取Context的数据,构建map %: 强制解析OGNL,强制不解析OGNL $ : 在配置文件中(xml,属性文件(国际化))使用OGNL #的用法: <body&g ...

  10. 最大流EK板子

    #include <bits/stdc++.h> using namespace std; ; const int INF=0x7fffffff; typedef long long ll ...