有两张表:user和department

User表:

CREATE TABLE `user` (
   `id` int(11) NOT NULL AUTO_INCREMENT,
   `name` varchar(30) DEFAULT NULL,
   `age` int(11) DEFAULT NULL,
   `birthday` date DEFAULT NULL,
   PRIMARY KEY (`id`)
 )

INSERT INTO USER VALUE(NAME,age,birthday)
VALUES("张三",20,"2018-10-31");

表内数据如下:

部门表:

CREATE TABLE `department` (
   `id` bigint(11) NOT NULL,
   `name` varchar(10) NOT NULL,
   `descr` varchar(50) DEFAULT NULL,
   PRIMARY KEY (`id`)
 )

INSERT INTO department (id,NAME,descr)
VALUES(1,"开发部","开发高级产品");

表内数据如下:

一、正常两表联合查询的sql语句:

SELECT u.id,u.name,u.age,d.name,d.descr
FROM USER u,department d WHERE u.id=d.id

查询结果

(或者:SELECT * FROM USER u,department d WHERE u.id=d.id)

二、左联查询sql语句:

SELECT * FROM USER u LEFT JOIN department d
ON u.id=d.id

查询结果:

根据查询结果可以看出:左联查询把前面表(user)全部查出,右表只查出部分,左表有的右表没有就为空

三、右联查询sql语句:

SELECT * FROM USER u RIGHT JOIN department
d ON u.id=d.id

查询结果:

根据结果可以看出:右联查询把后面表(department)全部查出,左表只查出部分,右表有的左表没有就为空

四、内联查询sql语句:

SELECT * FROM USER u INNER JOIN department
d ON u.id=d.id

其结果与SELECT * FROM USER u,department d WHERE u.id=d.id查询结果一样,查出两表中满足条件的记录(是两张表同时满足哦)

还可以使用where或and带条件查询。

SELECT * FROM USER u INNER JOIN department
d ON u.id=d.id AND u.age=20

查询结果:

SELECT * FROM USER u LEFT JOIN department d
ON u.id=d.id WHERE u.name LIKE '%王%'

SELECT * FROM USER u RIGHT JOIN department
d ON u.id=d.id AND u.age=20

查询结果:

根据以上可以看出:

1、使用外联查询时,添加and查询条件,不影响内外联查询的性质,只是查询的结果满足查询条件,添加where查询条件时,只能查到满足条件的记录(结果与内联查询一样)。

2、内联查询时,添加and或where条件时,查询结果都一样,只与查询条件有关

sql中的内联和外联(简单用法)的更多相关文章

  1. SQL中 Decode 和 Sign 语法的简单用法

    含义解释:decode(条件,值1,翻译值1,值2,翻译值2,...值n,翻译值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN R ...

  2. 《挑战30天C++入门极限》新手入门:关于C++中的内联函数(inline)

        新手入门:关于C++中的内联函数(inline) 在c++中,为了解决一些频繁调用的小函数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联函数. 可能说到这里,很 ...

  3. C++中的内联函数分析

    1,本节课学习 C++ 中才引入的新的概念,内联函数: 2,常量与宏回顾: 1,C++ 中的 const 常量可以替代宏常数定义,如: 1,const int A = 3; <==> #d ...

  4. 在Visual C++中使用内联汇编

    一.内联汇编的优缺点 因为在Visual C++中使用内联汇编不需要额外的编译器和联接器,且可以处理Visual C++中不能处理的一些事情,而且可以使用在C/C++中的变量,所以非常方便.内联汇编主 ...

  5. JAVA中的内联函数

    在说内联函数之前,先说说函数的调用过程. 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方.这种转移操作要求在转去前要保护 ...

  6. 通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制

    通过调用C语言的库函数与在C代码中使用内联汇编两种方式来使用同一个系统调用来分析系统调用的工作机制 前言说明 本篇为网易云课堂Linux内核分析课程的第四周作业,我将通过调用C语言的库函数与在C代码中 ...

  7. Go 中的内联优化

    文讨论 Go 编译器是如何实现内联的以及这种优化方法如何影响你的 Go 代码. 请注意:本文重点讨论 gc,实际上是 golang.org 的 Go 编译器.讨论到的概念可以广泛用于其他 Go 编译器 ...

  8. 转载:SQL中的case when then else end用法

    SQL中的case when then else end用法 来源: http://www.cnblogs.com/prefect/p/5746624.html Case具有两种格式.简单Case函数 ...

  9. SQL中CONVERT日期不同格式的转换用法

    SQL中CONVERT日期不同格式的转换用法 格式: CONVERT(data_type,expression[,style]) 说明:此样式一般在时间类型(datetime,smalldatetim ...

随机推荐

  1. 51Nod 1174 区间中最大的数

    给出一个有N个数的序列,编号0 - N - 1.进行Q次查询,查询编号i至j的所有数中,最大的数是多少.   例如: 1 7 6 3 1.i = 1, j = 3,对应的数为7 6 3,最大的数为7. ...

  2. Sanic

    基础 厉害了我的 Sanic hello word, Sanic

  3. opencv学习之路(28)、轮廓查找与绘制(七)——位置关系及轮廓匹配

    一.点与轮廓的距离及位置关系 #include "opencv2/opencv.hpp" #include <iostream> using namespace std ...

  4. 剑指offer(42)和为S的字符串

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 题目 ...

  5. CEF 设置Cookie

    参考文档:http://magpcss.org/ceforum/apidocs3/projects/(default)/CefCookieManager.html 转载:https://www.cnb ...

  6. build tool 的简单认知

    Build Tool 什么是Build Tool(构建工具)? 构建工具是从源代码自动创建可执行应用程序的程序(例如.apk for android app).构建包括将代码编译,链接和打包成可用或可 ...

  7. GuidePage底部导航栏

    import 'package:flutter/material.dart'; import 'News.dart'; import 'Video.dart'; import 'Chat.dart'; ...

  8. Spring Boot Log4j2 日志学习

    简介 Java 中比较常用的日志工具类,有: Log4j. SLF4j. Commons-logging(简称jcl). Logback. Log4j2(Log4j 升级版). Jdk Logging ...

  9. UVA1203 Argus

    思路 用堆维护每个触发器的下一个事件,每次取出一个事件再把对应触发器的下一个事件加入堆即可 代码 #include <cstdio> #include <algorithm> ...

  10. HRBUST 1186 青蛙过河 (思路错了)

    在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数轴上的一串 ...