内连接与外连接

有coder、department两张表


coder表

department表

内连接

内连接最常用定义:连接结果仅包含符合连接条件的行组合起来作为结果集,参与连接的两个表都应该符合连接条件使用关键词:INNER JOIN 连接多张表
也就是返回两个表的交集(阴影)部分,如下图所示:



如下sql查询语句,查询所有分配了部门信息的coder信息

SELECT "co".*, "de".* 
FROM "coder" AS co INNER JOIN
"department" AS de
ON co.department_id = de.department_id

也就是部门id在coder表,和部门表都存在行符合条件数据才展示


内连接查询结果

外连接

左连接

左(外)连接,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL,如下图所示:



如下sql查询语句,查询所有coder信息(包含部门信息)

SELECT "co".*, "de".* 
FROM "coder" AS co LEFT JOIN
"department" AS de
ON co.department_id = de.department_id

结果如下:


左连接结果

右连接

右(外)连接,右表的记录将会全部表示出来,而左表只会显示符合搜索条件的记录。左表记录不足的地方均为NULL,如下图所示:



如下sql查询语句,查询部门所有coder的信息

SELECT "co".*, "de".* 
FROM "coder" AS co RIGHT JOIN
"department" AS de
ON co.department_id = de.department_id

结果如下:


右连接结果图

你可能感兴趣的:(内连接与外连接)