猿问

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

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


繁花不似锦
浏览 323回答 3
3回答

杨魅力

联接:当两个表中至少有一个匹配时返回行左联接:返回左表中的所有行,即使右表中没有匹配项右联接:返回右表中的所有行,即使左侧表中没有匹配项完全连接:当其中一个表中有匹配时返回行结束编辑简而言之,您给出的逗号分隔的示例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子句,这将有助于细化结果。

慕妹3242003

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

相关分类

MySQL
我要回答