Skip to content

内连接


返回两个表中满足连接条件的所有行,如果某一表中的行在另一表中没有匹配的行,则该行不会出现在结果集中。只有两边都有匹配的行才会被保留,因此不会出现因无匹配而导致的 NULL。

图片名称

等值连接通过比较两个表中指定列的值来将它们连接起来。只有当两个表中某一列的值相等时,才会将这两行数据合并到结果集中。

SELECT 查询字段
FROM 表1
INNER JOIN 表2 ON 表1.关联字段1 = 表2.关联字段1
-- AND 表1.其他字段 = 表2.其他字段; (可继续添加更多连接条件)

若关联字段有索引,性能通常很好。

非等值连接(Non-Equi Join)是指在连接条件中不使用等值比较(=),而是使用其他比较操作符(如 <><=>=<> 等)进行连接的查询方式。非等值连接通常用于比较范围、区间等条件,或者处理某些特殊的连接需求。

SELECT 查询字段
FROM 表1
INNER JOIN 表2
ON 表1.字段名 < 表2.字段名; -- 使用非等值比较(如 <、>、BETWEEN 等)

非等值连接通常无法高效使用索引,数据量大时需谨慎。

自连接Self Join)是指同一个表与自身进行连接的操作。在 SQL 中,通过给表取不同的别名,然后进行连接,从而模拟出表与表之间的关系。自连接通常用于查询表中行与其他行之间的关系,例如,员工与其经理之间的关系,或者父子关系等。

SELECT 查询字段
FROM 员工表 AS 表1
INNER JOIN 员工表 AS 表2
ON 表1.上级编号 = 表2.员工编号; -- 同一张表,不同别名,通过字段关联

相当于“大表 × 大表”,务必确保连接字段有索引,否则性能急剧下降。