为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL:联接类型的快速细分

MySQL:联接类型的快速细分

繁花不似锦 2019-07-16 15:09:00
MySQL:联接类型的快速细分我想快速细分MySQL联接的类型。我知道这些,其余的我不知道它们是什么意思。逗号分隔(什么一点儿没错这是缩写吗?):SELECT * FROM a, b WHERE b.id = a.beeId AND ...显示来自a的信息,即使b中没有匹配:SELECT * FROM a LEFT OUTER JOIN b ON b.id = a.beeId WHERE ...我见过其他的加入,但我想知道是什么让他们与众不同,是什么?INNER/OUTER,添加LEFT改变一切。我已经知道联接是如何工作的,我只想知道是否有其他类型的联接,或者它们是否只是获得相同结果的不同方式。
查看完整描述

3 回答

?
杨魅力

TA贡献1811条经验 获得超5个赞

联接:当两个表中至少有一个匹配时返回行

  • 左联接:返回左表中的所有行,即使右表中没有匹配项
  • 右联接:返回右表中的所有行,即使左侧表中没有匹配项
  • 完全连接:当其中一个表中有匹配时返回行

结束编辑

简而言之,您给出的逗号分隔的示例

SELECT * FROM a, b WHERE b.id = a.beeId AND ...

从表a和表b中选择每条记录,并使用分隔表的逗号,这也可以在列中使用,如

SELECT a.beeName,b.* FROM a, b WHERE b.id = a.beeId AND ...

然后在您的示例中b.id列和a.beeId列匹配的行中获取指定的信息。因此,在您的示例中,它将从表a和b获取所有信息,其中b.id等于a.beeId。在我的示例中,当b.id等于.beeId时,它将从b表获取所有信息,而只从.beeName列获取信息。注意,还有一个AND子句,这将有助于细化结果。


查看完整回答
反对 回复 2019-07-16
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

MySQL中不存在完全外部联接,您可能需要使用左连接和右连接的组合。


查看完整回答
反对 回复 2019-07-16
  • 3 回答
  • 0 关注
  • 290 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信