使用关系代数合并数据

1.使用连接
 
连接类型 定  义    
内连接 只连接匹配的行    
左外连接 包含左边的全部行(不管右边的表中是否存在与他们匹配的行),以及右边表中全部匹配的行    
右外连接 包含右边的全部行(不管左边的表中是否存在与他们匹配的行),以及左边表中全部匹配的行    
全外连接 包含左、右两个表的全部行,不管在另外一边的表中是否存在与它们匹配的行    
θ(theta)连接 使用等值以外的条件来匹配左、右两个表中的行    
交叉连接 生成笛卡尔积--它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行都一一匹配 
 

1.1     内连接
    语法:select * from Table1 join Table2 on Table1.column=Table2.column

1.2     外连接
         左外连接:left outer join          右外连接: right outer join

语法:
select * from Table1 left/right outer join Table2  --//outer 关键字为可选项,可以不写
on Table1.字段=Table2.字段    --//条件

注意:
     在代码中,左和右用于指定无论是否具有匹配的行都要保留全部行的那个表(外连接表),
在这里左和右指的是表在SQL代码中的顺序,而使用图形化查询工具的位置是没有关系的。

例:  查询所有的客户及他们的订单号:
select j_merchant.shutname  as '加盟商',d_sell.sellid  as '订单编号' 
from j_merchant left join d_sell     --//左连接
on j_merchant.merchantid=d_sell.get_mchid   --//条件
order by d_sell.sellid      --//按单号排序

 加盟商      订单编号
-----------------------------------------------------------------------
 葫芦岛     PF1001-2006-08-19-0001
 佛山        PF1001-2006-09-10-0001
 武汉        PF1001-2006-09-10-0002
 福州        PF1001-2006-09-10-0003
 福州        PF1001-2006-09-10-0004
 珠海        PF1001-2006-11-04-0001
 武汉        PF1001-2006-11-04-0002
 鞍山        PF1001-2007-08-14-0001
 福州        PF1001-2007-08-15-0001
        ……

全外连接:FULL OUTER JOIN
全外连接返回两个表中的所有行,无论它们在另一个表中是否有与之匹配的行

注意:
       当在内连接查询中加入条件时,无论是将它加入到 join 子句,还是加入到 where 子句,
其效果是完全一样的,但对于外连接连接情况就不是这样报,当把条件加入到 join 子句时,
SQL 会返回外连接表的全部行,然后使用指定的条件返回第二个表的行;如果将条件放到
where 子句中,SQL 将会首先进行连接操作,然后 where 子句对连接后的行进行筛选。

自身连接: 同一个表自己与自己进行连接
例句:
select a.cr_name as '店铺',b.names as '店员',a.employeeid  as '店员编号'
from j_employee a join j_employ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值