SQL Inner Join11 Jun 2025 | 6 分钟阅读 SQL 中有多种不同的 连接类型,其中 INNER JOIN 是最常见也是最重要的连接类型。它允许用户访问来自两个或多个数据库表的匹配数据。 通过 Inner Join,我们可以仅检索跨表相关的或连接的数据。它会过滤掉不匹配的行,只包含连接条件满足的行。 Inner Join 通过逐行比较指定列中的值来创建合并结果。当连接列中的值相等时,这些行将被包含在最终输出中。 INNER JOIN 的 维恩图 如下所示。维恩图的阴影部分显示了两个表的交集值。 ![]() SQL 中 INNER JOIN 的语法描述SELECT: 这是一个 SQL 命令,用于从数据库中检索数据。 FROM: 这是一个 SQL 关键字,用于指定需要从中获取数据的表。 ON: 这是一个 SQL 关键字,用于使用公共列名匹配行。 Column_Name1, Column_Name2, ….., Column_NameN: 这些是要检索的列的名称。 Table_Name1, Table_Name2: 这是要连接的两个表的名称。 Common_Column_Name: 这是 Table_Name1 和 Table_Name2 中公共列的名称。 为什么使用 Inner Join?现在,我们可以描述 SQL 数据中内连接的用法。 ![]() 连接跨表的相关数据 在数据库中,数据被分割到多个表中以避免数据重复。Inner join 将公共数据整合到一个表中。 排除不匹配的记录 它只显示所有表中存在共同项的数据。如果一个表中的一行与另一个表中的一行不匹配,则该行将被排除在结果之外。 生成报表 它通过将来自多个表(例如订单和商品详情)的数据连接起来,创建详细的报表。 数据分析 Inner join 用于组合事实表(存储可测量数据)和维度表(存储表中的描述性信息)。 构建复杂查询 Inner join 帮助您通过在单个语句查询中组合多个表来构建复杂查询。 SQL 中 Inner Join 的演示为了更好地理解内连接,我们将创建两个表并对它们执行命令。 演示 1让我们创建两个名为 Department 和 Employee_Details 的表来理解 INNER JOIN 的概念。 步骤 1创建 Department 表Department 表包含 Dept_Id 和 Dept_Name 列。 创建 Employee_Details 表Employee_Details 表包含 Emp_ID、Emp_Name、Dept_ID 和 Emp_Salary 列。 步骤 2在 Department 表中插入数据在 Employee_Details 表中插入数据步骤 3我们可以使用以下查询来查看 Department 和 Employee_Details 表的数据。 检索 Department 表输出
检索 Employee_Details 表输出
步骤 4以下查询使用 SQL 中的 INNER JOIN 连接以上两个表。 以上 INNER JOIN 查询的解释此查询连接 Employee_Details 和 Department 表,并访问两个表中 Department.Dept_Id = Employee_Details.Dept_Id 的记录。 它仅从两个表中检索那些 Dept_Id 在 Employee 表中与 Department 表的 Dept_Id 匹配的员工的详细信息。 如果 Dept_Id 为 NULL 或不匹配,则该行将不会显示在输出中。 输出
演示 2让我们通过另一个演示来理解 INNER JOIN。现在让我们创建两个名为 Accounts 和 Transactions 的表。 步骤 1构建 Accounts 表Accounts 表包含 account_id、account_holder、account_type 和 city 列。 构建 Transactions 表Transactions 表包含 transaction_id、account_id、transaction_date 和 amount 列。 步骤 2向 Accounts 插入数据向 Transactions 插入数据步骤 3我们可以使用以下查询来检索 Accounts 和 Transactions 表的数据。 检索 Accounts 表输出
检索 Transactions 表输出
步骤 4给定的查询使用 INNER JOIN 连接 Accounts 和 Transactions 表。 以上 INNER JOIN 查询的解释INNER JOIN 使用公共列 account_id 组合 Accounts 和 Transactions 表中的数据。查询仅检索存在于两个表中的数据。 Accounts 表存储有关账户持有人、姓名、账户类型和城市的信息。Transaction 表包含每个账户的交易详情。 要检索两个表中的数据,可以使用 INNER JOIN 查询,其中 Accounts 表中的 account_id 与 Transactions 表中的 account_id 匹配。 输出
结论SQL 中的 INNER JOIN 用于基于它们之间的相关列组合两个或多个表中的行。它只返回两个表中都有匹配项的行。如果不存在匹配项,则这些行的数据不会显示在结果中。 它有助于通过使用表之间的关系来保持数据清洁并删除重复数据。INNER JOIN 常用于在银行业务、销售或库存系统等实际应用中生成报表、分析数据和构建复杂查询。 下一个主题SQL IN 运算符 |
我们请求您订阅我们的新闻通讯以获取最新更新。