关闭

多表连接

标签: oracle数据库
138人阅读 评论(0) 收藏 举报
分类:

多表连接

select table1.aaa,table2.bbb from table1

–cross join table2

–natural join table2

–join table2 using (xxx)

–join table on table1.table1_id = table2.table2 _id

–left/right/full (outer) join table2 on table1.table1_id = table2.table2 _id

  • 内连接(等值连接)

    
    select e.last_name,d.department_name from employees e,departments d where e.department_id=d.department_id
    =
    
    select e.last_name,d.department_name from employees e join departments d on e.department_id=d.department_id
  • 外连接 left/right join 表名 on

    left join 表名 on
    
    
    select e.last_name,d.department_name from employees e left join departments d on e.department_id=d.department_id
    =
    
    使用(+), 带(+)的为补充表
    select e.last_name,d.department_name from employees e,departments d where e.department_id=d.department_id(+)
  • 自连接

    select worker.last_name ||' works for '|| manager.last_name from employees worker,employees manager where worker.manager_id = manager.employee_id
  • 自然连接 natural 表名 join

    以两个表中名字相同的列为条件创建等值连接

    如果有相同名字的列数据类型不同,返回一个错误

    
    select * from employees natural join departments   
    =
    
    select * from employees e,departments d where e.department_id=d.department_id and d.manager_id=e.manager_id
    
    using指定等值连接用到的列   join 表名 usingnatural joinusing 是互相排斥的
    在引用列不要使用表名或别名
    
    select * from employees join departments using (department_id) 
    =
    
    select * from employees e,departments d where e.department_id=d.department_id
    
    select * from employees join departments using (department_id) where department_id = 10
    
    select * from employees join departments d using (department_id) where d.department_id = 10 --错误的
  • 交叉连接 cross 表名 join

    两个表的交叉乘积,该连接和两个表之间的笛卡尔乘积是一样的

    
    select last_name,department_name from employees cross join departments
    =
    
    select last_name,department_name from employees,departments
  • 全外连接 full join 表名 on

    返回两个表中的行,即使不匹配的行也会返回

    select * from employees e full join departments d on e.department_id=d.department_id

0
0
查看评论

多表连接中对应的javabean-UserRelation

package com.rey.entities; import com.alibaba.fastjson.annotation.JSONField; import javax.persistence.*; /** * Created by psq on 2016/8/17. */ @En...
  • u012847257
  • u012847257
  • 2016-08-19 10:15
  • 201

多表连接

第五章:多表连接   什么是连接      • 连接是在多个表之间通过一定的连接条件,使表之间发生关联,进而能从多个表之间获取数据。    • 语法为:     ...
  • two2123427
  • two2123427
  • 2015-07-31 21:24
  • 972

sql中多表连接中需要注意的事项

1.在数据库中,通常可以通过查看执行计划了解sql语句的执行顺序,以及花费的时间等,但在使用left join时,需要特别注意的是,如果第二张表有筛选条件,应该将连接条件写在join里面,而不是写在where后面.第一种情况:第二张表有筛选条件,将筛选条件加在where后面的情况,实际上是先筛选第二...
  • kpp19920121
  • kpp19920121
  • 2016-11-07 18:15
  • 597

关于MySQL连接和多表更新的心得

在MySQL中,如果想查询多表的记录,必须要使用到连接查询。 而连接查询其实很简单,只要在单表查询的FROM 后面,使用INNER JOIN 连接上另一个表。 单表查询:  SELECT 需要查找的字段 FROM 表1 多表查询 : SELECT 需要查找的字段 FR...
  • yglt77
  • yglt77
  • 2016-03-12 17:11
  • 138

多表连接 isnull 函数

  • sky_monkey
  • sky_monkey
  • 2009-06-23 20:04
  • 526

MySQL学习16:多表连接

一连接概述         (1)连接         MySQL数据库在SELECT语句,多表更新以及多表删除中都支持JOIN操作。多表连接的语法结构为:         ...
  • erlian1992
  • erlian1992
  • 2016-05-29 22:22
  • 6022

ActiveRecord多表查询

ActiveRecord多表查询
  • educast
  • educast
  • 2011-03-31 09:17
  • 1363

[转]多表连接查询

本文主要列举两张和三张表来讲述多表连接查询。新建两张表:表1:student  截图如下:表2:course  截图如下:(此时这样建表只是为了演示连接SQL语句,当然实际开发中我们不会这样建表,实际开发中这两个表会有自己不同的主键。)一、外连接外连接可分为:左连接、右连接、完全...
  • djf3848
  • djf3848
  • 2013-08-05 20:13
  • 598

数据库中多表的连接

连接数据库中的表进行查询、建立视图,可以大大提高去查询数据库数据的效率。连接表进行查询实际上是通过各个表之间共同列的关系来查询数据的,他是关系数据查询最重要的特性。
  • suneqing
  • suneqing
  • 2014-01-13 18:33
  • 2644

【SQL Server】多表连接查询

前言         数据存储到数据库后,如果不对其进行分析和利用,数据是没有价值的。最终用户对数据库中数据进行的操作大多是查询和修改,其中修改操作包括插入、删除和更改数据。SQL提供了功能强大的数据查询和修改的功能。查询,插入和删除。这种...
  • Gnd15732625435
  • Gnd15732625435
  • 2016-10-17 21:29
  • 603
    个人资料
    • 访问:4978次
    • 积分:431
    • 等级:
    • 排名:千里之外
    • 原创:42篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类