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条经验 获得超6个赞
联接:当两个表中至少有一个匹配时返回行
- 左联接:返回左表中的所有行,即使右表中没有匹配项
- 右联接:返回右表中的所有行,即使左侧表中没有匹配项
- 完全连接:当其中一个表中有匹配时返回行
结束编辑
简而言之,您给出的逗号分隔的示例
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子句,这将有助于细化结果。
添加回答
举报
0/150
提交
取消