用联接来查询两个表
来源:互联网 发布:java获取项目相对路径 编辑:程序博客网 时间:2024/05/17 01:03
用联接来查询两个表
本文仅作为初学者SQL应用备忘录
我们经常要查询两个表中某个字段相同的和不同的记录,用联接来进行查询可以很方便地得到所要的结果。
一、什么是联接
联接:join 表示两个表的关系,我们可以把两个表看成两个集合。假设有两个表,我们用A和B来表示,这两个表有一个或者多个相同的字段。那么,就存在着以下三个不同的集合:
1、交集:两个表中字段相等的记录
2、A交B补:在A中,且相同字段的内容不等于B的记录
3、B交A补:在B中,且相同字段的内容不等于A的记录
二、用联接来查询
join有三种用法与以上三个集合对应
1、交集:inner join 内部联接
2、A交B补:left join 左联接
3、B交A补:right join 右联接
三、实例
现在来看一个实例。有两个表,表一:地址;表二:邮件。
为了简单,两个表都只有一个字段,字段名是“名字”。现在来得到三个集合:
1、在两个表中都有名字的记录
SELECT 地址.名字 AS 名字
FROM 地址 INNER JOIN 邮件 ON 地址.名字 = 邮件.名字;
2、在地址中有名字且在邮件中没有名字的记录
SELECT 地址.名字
FROM 地址 LEFT JOIN 邮件 ON 地址.名字 = 邮件.名字
WHERE (((邮件.名字) Is Null));
注:对地址表来说这是左联接,对邮件表来说,这就是右联接
3、在地址中没有名字且在邮件中有名字的记录
SELECT 邮件.名字
FROM 地址 RIGHT JOIN 邮件 ON 地址.名字 = 邮件.名字
WHERE (((地址.名字) Is Null));
注:对地址表来说这是右联接,对邮件表来说,这就是左联接
后面两个也可以写成用邮件表来联接地址表,这就留给大家自己去写吧。Bluetooth 和 lz1220 可以来看看。
- 用联接来查询两个表
- 用联接来查询两个表
- 表联接查询
- 多表联接查询
- 多表联接查询
- 三表联接查询
- ef 多表联接查询
- 多表查询之联接
- 联接查询
- 联接查询
- SQL多表查询之一内联接
- Sql复杂查询--多表联接
- oracle的多表联接查询用法
- 多表联接查询select count()
- sqlite怎样实现多表联接查询
- sqlite怎样实现多表联接查询
- mysql left联接查询实现多表查询
- INNER JOIN多表联接查询交集查询
- 6. Java 虚拟机及Java的跨平台特性
- 几种优秀的开发ASP的工具
- 现在几乎所有的免费信箱都需要smtp验证
- PLSQL连Oracle数据库登陆时缺少“连接为”选项框,并且提示Could not load "……\bin\oci.dll"
- 常用下载工具与编程书籍
- 用联接来查询两个表
- LeetCode: Median of Two Sorted Arrays
- ASP 无组件上传
- struts2的default.properties详解
- xml 读取节点中指定的属性值
- Xapian开源搜索引擎
- 动网论坛密码暴力破解程序代码
- Codeforces 432E Square Tiling(构造+贪心)
- 学习的一些事