MySQL:联接类型的快速细分

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改变一切。

我已经知道联接是如何工作的,我只想知道是否有其他类型的联接,或者它们是否只是获得相同结果的不同方式。



米脂
浏览 325回答 3
3回答

慕田峪7331174

根据您的评论,对每一项的简单定义最好在W3学校每种类型的第一行给出了连接类型的简要说明。联接:当两个表中至少有一个匹配时返回行左联接:返回左表中的所有行,即使右表中没有匹配项右联接:返回右表中的所有行,即使左侧表中没有匹配项完全连接:当其中一个表中有匹配时返回行结束编辑简而言之,您给出的逗号分隔的示例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子句,这将有助于细化结果。关于MySQL联接和左联接的一些简单教程和解释,请参阅Tizag的MySQL教程。你也可以退房基思·布朗的网站有关联接的更多信息,这也很好。我希望这对你有帮助

牧羊人nacy

MySQL中不存在完全外部联接,您可能需要使用左连接和右连接的组合
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL