SQL语句JOIN

Join 和 Key

又是为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行join。
数据库中的表通过键将彼此联系起来,主键(primary key)是一个列,在这个列中的每一行的值都是唯一的,在表中,每个主键的值都时唯一的,这样做的目的在不重复每个表中的所有数据的情况下,把表间的数据交叉绑定在一起。SQL教程
请看DUCK表:

DUCK_IDNAMEYEAR
HK234DUCK012016
DK244DUCK022016
KK134DUCK032016

DUCK_ID时DUCK表中的主键,这意味着没有两列数据的主键是相同的
接下来是MEAT表:

MEAT_IDKINDPRODUCTION_YEARDUCK_ID
LO23DUCK2016KK134
LO93DUCK2016DK244
LO03DUCK2016HK234
LO66DUCK2016CO134

MEAR 表中MEAT_ID时该表的主键,同时表中的DUCK_ID引用DUCK中的主键,


引用两张表
我们可以通过引用两张表的方式,从两个表中获取数据:

SELECT M.MEAT_ID,D.DUCK_ID,M.KIND,M.PRODUCTION_YEAR,D.YEAR FROM MEAT M,DUCK D WHERE M.DUCK_ID=D.DUCK_ID;

结果:

MEAT_IDDUCK_IDKINDPRODUCTION_YEARYEAR
LO23KK134DUCK20162016
LO23KK134DUCK20162016
LO23KK134DUCK20162016

SQL JOIN使用join
除了上面的方法,我们也可以使用关键字JOIN来从两个表中获取数据。

SELECT M.MEAT_ID,D.DUCK_ID,M.KIND,M.PRODUCTION_YEAR,D.YEAR FROM MEAT M INNER JOIN DUCK D ON M.DUCK_ID=D.DUCK_ID ORDER BY M.MEAT_ID;

结果:

MEAT_IDDUCK_IDKINDPRODUCTION_YEARYEAR
LO03HK234DUCK20162015
LO23KK134DUCK20162016
LO93DK244DUCK20162016

不同的SQL JOIN
除了我们在上面的例子中使用的INNER JOIN(内连接),我们还可以使用其他几种方式连接。
下面是使用JOIN类型,和他们之间的差异。

  • JOIN:如果表中至少有一个匹配,则返回行。
  • LEFT JOIN:即使右表中没有匹配,也从左表返回所有的行。
  • RIGHT JOIN:即使左表中没有匹配,也从右表返回所有的行,
  • FULL JOIN:只要其中一个表中存在匹配,就返回行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值