sql join on关联查询语句用法

加入是用来从多个表中的行结合起来。每当在一个SQL语句的FROM子句中列出的两个或多个表进行联接。

有不同类型的联接。让我们看看几个例子。

 内部联接(简单的加入)
机会是,你已经写了一个SQL语句,使用一个内部联接。这是最常见的类型,加入。内部联接满足联接条件的多个表返回所有行。

 代码如下 复制代码

SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;

这条SQL语句将返回从那里是一个匹配的供应商和订单表supplier_id价值的供应商和订单表的所有行。

 

让我们看看一些数据解释工作的内在联结如何:

我们有两个领域的供应商(supplier_id和supplier_名称)表。
它包含以下数据:

supplier_id supplier_name
10000 IBM
10001 Hewlett Packard
10002 Microsoft
10003 NVIDIA

We have another table called orders with three fields (order_id, supplier_id, and order_date).
It contains the following data:

order_id supplier_id order_date
500125 10000 2003/05/12
500126 10001 2003/05/13

运行如下代码

 代码如下 复制代码

 SELECT suppliers.supplier_id, suppliers.supplier_name, orders.order_date
FROM suppliers, orders
WHERE suppliers.supplier_id = orders.supplier_id;

结果

supplier_id name order_date
10000 IBM 2003/05/12
10001 Hewlett Packard 2003/05/13

Outer Join
先看一个实例

 代码如下 复制代码

select suppliers.supplier_id, suppliers.supplier_name, orders.order_date
from suppliers, orders
where suppliers.supplier_id = orders.supplier_id(+);

这条SQL语句将返回所有行从供应商表,并只有那些从订单表中的行的联接字段相等。

(+),后orders.supplier_id场表示,如果在供应商的表supplier_id价值不存在订单表,订单表中的各个领域将作为<NULL>显示的结果集。

上面的SQL语句也可以写成如下形式:

 代码如下 复制代码

select suppliers.supplier_id, suppliers.supplier_name, orders.order_date
from suppliers, orders
where orders.supplier_id(+) = suppliers.supplier_id

看看结果

supplier_id supplier_name
10000 IBM
10001 Hewlett Packard
10002 Microsoft
10003 NVIDIA

We have a second table called orders with three fields (order_id, supplier_id, and order_date).
It contains the following data:

order_id supplier_id order_date
500125 10000 2003/05/12
500126 10001 2003/05/13

再调用查询语句

 代码如下 复制代码

select suppliers.supplier_id, suppliers.supplier_name, orders.order_date
from suppliers, orders
where suppliers.supplier_id = orders.supplier_id(+);

结果为

supplier_id supplier_name order_date
10000 IBM 2003/05/12
10001 Hewlett Packard 2003/05/13
10002 Microsoft <null>
10003 NVIDIA <null>
时间: 2024-11-02 10:59:53

sql join on关联查询语句用法的相关文章

sql多表关联查询语句

#temptest1                 #temptest2     实现方法如下:  代码如下 复制代码 Update t1 Set t1 .age = t2.age From  #temptest1 t1 Join #temptest2 t2 On  t1.id = t2.id   (补充)Sql Server 2008 Merge命令写法: merge into #temptest1 t1 using(select age,id from #temptest2) t2 on

ruby sql select 查询语句用法

ruby sql select 查询语句用法 require 'mysql教程' m = Mysql.new("localhost","ruby","secret","maillist") r = m.query("SELECT * FROM people ORDER BY name") r.each_hash do |f|   print "#{f['name']} - #{f['email']

Yii2中hasOne、hasMany及多对多关联查询的用法详解

前言 hasOne.hasMany是Yii2特有的用于多表关联查询的函数,平时在使用多表关联查询的时候建议使用它们.为什么?因为这种方式关联查询出来的结果会保留Yii2自有的表头排序功能,以及CheckboxColumn中input的id存值,至于还有没有其它的好处就需要大家去挖掘了,笔者目前就发现了这两个常用的好处.其他的关联查询,像yiidbQuery查询或者原生的SQL语句查询都没有,查询出来在列表展示的时候,表头一排黑. Yii2的hasOne.hasMany多表关联查询,不管是文档还是

基于SQL中的数据查询语句汇总

以下是对SQL中的数据查询语句进行了汇总介绍,需要的朋友可以过来参考下   where条件表达式 --统计函数 复制代码 代码如下: Select count(1) from student; --like模糊查询 --统计班上姓张的人数 复制代码 代码如下: select count(*) from student where realName like '张%'; --统计班上张姓两个字的人数 复制代码 代码如下: select count(*) from student where rea

sql 数据库表关联查询

问题描述 sql 数据库表关联查询 sql表关联查询出的结果想再次约束(where)取出结果如何做,如下图,图为已取出的结果,想将 publiction_set_id 的值为null的数据提出,怎么做? 解决方案 有两种可能,因为是左连接,可能左边的表有数据,右边的表没数据.另外一种,右边的表这个字段是null.所以最好的选择是在这个查询结果外层在加一个 select * from ( 你的上面SQL语句) ) a where publiction_set_id is null 解决方案二: a

sql join on联合查询实例

sql join on联合查询实例 sql join - 使用 join 除了上面的方法,我们也可以使用关键词 join 来从两个表中获取数据. 如果我们希望列出所有人的定购,可以使用下面的 select 语句: select persons.lastname, persons.firstname, orders.orderno from persons inner join orders on persons.id_p = orders.id_p 实例二 select title, artis

Yii框架关联查询with用法分析_php实例

本文实例分析了Yii框架关联查询with用法.分享给大家供大家参考.具体方法如下: Yii框架关联查询与mysql中的关联查询会有什么区别呢?这里小编就与各位来一起来看看吧. Yii的关联查询确实是一个方便的东西,网上的资料也很多,但是大部分都是Ctrl+c,Ctrl+v,有些东西一直没有人出来详细的写篇文章说明一下,在参考了网上很多资源以后,加上自己的的一些理解,写下了这篇文章,给广大初学者朋友们提供一点个人见解. YII 支持四种类型的关系: BELONGS_TO(属于): 如果表 A 和

mysql sql存储过程流程控制if语句用法

今天我们要来讲一下关于mysql教程 sql存储过程流程控制if语句用法与实例教程吧 if语句 if实现条件判断,满足不同条件执行不同的操作,这个我们只要学编程的都知道if的作用了,下面我们来看看mysql 存储过程中的if是如何使用的吧. if contion then list      [elseif condition then list].........      [else list] end if 这样看上去像asp教程里面的条件,但在elseif时又有些像php教程中的if,但

详解SQL Server的简单查询语句_MsSql

前言 对于一些原理性文章园中已有大量的文章尤其是关于索引这一块,我也是花费大量时间去学习,对于了解索引原理对于后续理解查询计划和性能调优有很大的帮助,而我们只是一些内容进行概括和总结,这一节我们开始正式步入学习SQL中简单的查询语句,简短的内容,深入的理解. 简单查询语句 所有复杂的语句都是由简单的语句组成基本都是由SELECT.FROM.WHERE.GROUP BY.HAVING.ORDER BY等组成,当然还包括一些谓词等等.比如当我们要查询某表中所有数据时我们会像如下进行. SELECT