sql的join用法
SQL join 用于把来自两个或多个表的行结合起来,sql join主要包括inner join、 left join 、right join 、full outer join。
先介绍一下表里面的数据。
第一张表 teacher

第二张表 student

首先是inner join,sql如下
select * from student as s inner join teacher as t on s.id = t.id;
执行结果

解释图

left join,又可以写作left outer join ,sql如下
select * from student as s left join teacher as t on s.id = t.id;
执行结果

解释图

right join,又可以写作right outer join,sql如下
select * from student as s right join teacher as t on s.id = t.id;
执行结果

解释

full outer join,mysql不支持full outer join,sql应该写成
SELECT
s.id AS s_id,
s.FIRST_NAME AS s_f,
s.LAST_NAME AS s_l,
t.FIRST_NAME AS t_f,
t.LAST_NAME AS t_l,
t.id AS t_id
FROM
student AS s
LEFT JOIN
teacher AS t ON s.id = t.id
UNION SELECT
s.id AS s_id,
s.FIRST_NAME AS s_f,
s.LAST_NAME AS s_l,
t.FIRST_NAME AS t_f,
t.LAST_NAME AS t_l,
t.id AS t_id
FROM
teacher AS t
LEFT JOIN
student AS s ON s.id = t.id
输出结果

解释

参考:
http://www.w3cschool.cc/sql/sql-join.html
http://stackoverflow.com/questions/38549/difference-between-inner-and-outer-joins
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
http://stackoverflow.com/questions/4796872/full-outer-join-in-mysql
sql的join用法的更多相关文章
- sql语句的join用法
sql的join分为三种,内连接.外连接.交叉连接. 以下先建2张表,插入一些数据,后续理解起来更方便一些. create table emp(empno int, name char(20),dep ...
- 【SQL】【Join基础】了解sql中的join用法,看这一篇就够了
转自: https://www.cnblogs.com/reaptomorrow-flydream/p/8145610.html SQL JOIN 子句用于把来自两个或多个表的行结合起来,基于这些表之 ...
- SQL SERVER数据库Left Join用法
Left Join基本语法: SQL LEFT JOIN 关键字 LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的 ...
- 标准SQL语言的用法
原文链接:http://www.ifyao.com/2015/05/18/%E6%A0%87%E5%87%86%E7%9A%84sql%E8%AF%AD%E8%A8%80%E4%BD%BF%E7%94 ...
- 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codi ...
- 图释SQL的Join
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
- SQL CROSS JOIN
最近在讲到T-SQL查询的Join部分时,一下子没有想起来CROSS JOIN的用法,因为其实平常也确实基本不用到.特意找了一个例子,以供参考 CROSS JOIN又称为笛卡尔乘积,实际上是把两个表乘 ...
- mysql学习之join用法
转载 一张图看懂 SQL 的各种 join 用法 一.JOIN 使用介绍 下面例子使用的数据表如下: -- ---------------------------- -- Table structu ...
- 图解SQL inner join、left join、right join、full outer join、union、union all的区别
转于:http://justcoding.iteye.com/blog/2006487 这是一篇来自Coding Horror的文章. SQL的Join语法有很多:有inner的,有outer的,有l ...
随机推荐
- 使用Jenkins构建持续集成环境
简介 Jenkins是一个开源的持续集成工具,提供了数百种插件供用户选择,能够完成整套持续集成环境的构建. 它具有如下的特点: 持续集成和持续发布 作为可扩展的自动服务器,Jenkins可以作为简单的 ...
- Windows系统下Memcached缓存系列二:CouchbaseClient(c#客户端)的详细试用,单例模式
在上一篇文章里面 ( Windows系统下Memcached缓存系列一:Couchbase(服务器端)和CouchbaseClient(c#客户端)的安装教程 ),我们介绍了服务器端的安装和客户端的安 ...
- 转载:NPOI导出到Excel表格
NPOI开发包下载:http://pan.baidu.com/share/link?shareid=4025220936&uk=2837994235 需要命名空间 using NPOI.HSS ...
- HDU 5353 Average 糖果分配(模拟,图)
题意:有n个人坐在圆桌上,每个人带着糖果若干,每次只能给旁边的人1科糖果,而且坐相邻的两个人最多只能给一次(要么你给我,要么我给你),问是否能将糖果平均分了. 思路: 明显每个人最多只能多于平均值2个 ...
- HDU 1496 Train Problem I 火车问题1(桟,水)
题意: 给出两个串,串中的数字i 代表编号为i的火车进入车站的顺序,车站如桟一样,先进后出.第二个串是火车出站的顺序,问若按照第一个串那样进站,是否有可能如第二个串一样的出站顺序?火车顶多9辆,即1- ...
- Python [Leetcode 342]Power of Four
题目描述: Given an integer (signed 32 bits), write a function to check whether it is a power of 4. Examp ...
- php使用memcache与memcached扩展对key值的影响
php使用php_memcache时,key值为session_id()的值,也就是客户端cookie记录的值. php使用php_memcache时,key值为session_id()的值加上mem ...
- 【转】bzero, memset ,setmem 区别
原文网址:http://blog.csdn.net/agathe/article/details/6066157 bzero 原型: extern void bzero(void *s, int n ...
- WPF的控件Binding的ElementName/RelativeSource具体用法
<TextBlock Name="_txtSickBedNo" FontStyle="Normal" Foreground="Black&quo ...
- js函数内嵌函数的整体跳出 .
stop=false; $.ajax({success:function(){ 这里面不能用return false跳出整个<script></script>,只能跳出该处的f ...