1)Inner Join
会返回两个表中满足连接条件的交集。当两个表的连接字段都存在匹配的行时,这条行才会出现在结果集中。举个例子:当 user 表跟 class 表中都存在 userId = 1
的字段时,userId
为 1 的这一行才会出现在返回的结果集。
2)Left Join
会返回左表(左边表)的所有行,以及右表中与左表匹配的行。如果右表中没有匹配的行,则会返回 NULL 值。
3)Right Join
与 Left Join
相反,它会返回右表(右边表)的所有行,以及左表中与右表匹配的行。如果左表中没有匹配的行,则会返回 NULL 值。
需要注意的是并不是每个 Right Join
与 Left Join
的查询条数都等于左边表或者右边表:
1)当使用 Left Join
时,结果行数的范围表示为:左表行数 <= 结果行数 <= 左表行数 + 右表匹配行数。
2)当使用 Right Join
时,结果行数的范围表示为:右表行数 <= 结果行数 <= 右表行数 + 左表匹配行数。