中的各种关联查询对很多初学者来说可以说是一大难关,今天就通过下面一张图来理理四种常见的关联查询。
首先需要清楚的是两个表连接操作会得到一个新表,新表即包含了左表(连接操作左边的表)字段,也会包含右表(连接操作右边的表)字段。
INNER JOIN
INNER JOIN(内连接):进行连接的两个表中,都存在与连接条件相匹配的数据才会被保留下来,相当于两个表的交集。如果前后连接同一张表,也叫自连接。
LEFT JOIN
LEFT JOIN(左外连接):会把左边表中所有数据取出来,如果左边表的某行数据在右表中没有与连接条件相匹配的行,则结果集中该行中对应的右表字段值均为NULL值。
RIGHT JOIN
RIGHT JOIN(右外连接):和LEFT JOIN相反,会把右边表中所有数据取出来,如果右边表的某行数据在左表中没有与连接条件相匹配的行,则结果集中该行中对应的左边表字段值均为NULL值。
FULL OUTER JOIN
FULL OUTER JOIN(全连接)的结果其实就是LEFT JOIN 结果与RIGHT JOIN结果的并集。
需要注意的是MySQL数据库不支持FULL OUTER JOIN