Python MySQL JOIN 操作2025 年 8 月 27 日 | 7 分钟阅读 在 SQL 中,JOIN 语句允许我们通过两个或多个表之间的公共列来组合它们的列。SQL 中有三种类型的 JOIN,每种类型根据数据的存储方式提供不同的结果。 假设我们有两个表,“User”表和“Vehicle”表。 “User”表 “Vehicle”表 我们将在 Python 中创建这两个表并插入值。 输出 它将创建 User 和 Vehicle 表。 ![]() 这两个表可以使用 User 的 fav 字段和 Vehicle 的 id 字段进行连接。 MySQL JOIN 操作允许用户从不同的表中查询数据并以单个数据集的形式返回输出。SQL 提供了不同类型的 JOIN,每种类型根据数据组合方式产生不同的输出。 让我们详细了解每种 JOIN。 连接类型Python MySQL 中有三种类型的 JOIN 操作,让我们通过示例逐一了解它们。 ![]() 1. INNER JOIN它显示两个表中具有匹配值的记录。如果它在表中找不到任何匹配项,则不返回任何记录。 语法 示例 在给定示例中,我们使用 INNER JOIN 来获取 User 表和 Vehicle 表中都存在的用户名。我们将编写一个 INNER JOIN 查询,它将返回 fav 与两个表中的 id 匹配的输出。 输出 ('Reema', 'Royal Enfield') ('Ayon', 'Royal Enfield') ('Anshul', 'Honda City') 说明 在上面的程序中,我们使用 mysql.connector 库将 Python 连接到 MySQL 数据库。建立了连接并创建了一个游标对象。 我们编写了一个 SQL 查询,其中我们使用了 INNER JOIN 来包含两个表 users 和 products 中的所有公共值。语句 users.fav = products.id 将获取在两个表中都精确匹配的值。我们将执行此查询并检索所有行并将其存储在 myresult 变量中。 最后,我们将使用 For 循环打印每条记录,并返回两个表中都存在的记录。 2. LEFT JOIN在上面的输出中,Megha 和 Heena 被排除在外,这是因为 INNER JOIN 只返回有匹配的记录,这意味着它检索两个表中的公共值。 如果您想显示用户表中的所有值,即使它们没有喜欢的商品,请使用 LEFT JOIN 语句。 语法 示例 在此示例中,我们使用 LEFT JOIN 从 User 表中检索用户名称以及 Vehicle 表中的匹配记录。此 LEFT JOIN 查询将返回 User 表中的所有值和 Vehicle 表中的匹配记录,如果 Vehicle 表中没有匹配项,则 Vehicle 值将返回 NONE。 输出 ('Reema', 'Royal Enfield') ('Ayon', 'Royal Enfield') ('Anshul', 'Honda City') ('Heena', None) ('Megha', None) 说明 在此,我们编写了一个 SQL 查询,其中我们从两个表 users 和 products 中选择数据。然后我们使用了 LEFT JOIN,其中我们包含了所有用户,即使他们没有在喜欢的产品中找到精确匹配的值。 使用语句 users.fav = products.id 进行连接。执行此查询后,它将返回左表中的所有值和右表中的公共值。 3. RIGHT JOINRIGHT JOIN 显示右手边表的所有列,因为我们在数据库中有两个表。如果它在表中找不到任何匹配项,它会在左侧返回 none。 语法 在 MySQL 服务器上执行以下查询。 示例 在此示例中,我们使用 RIGHT JOIN 从 Vehicle 表中检索车辆名称以及 User 表中的匹配记录。此查询返回 Vehicle 表中的所有记录和 User 表中的匹配记录,如果没有匹配项,则 User 值将返回 None。 输出 ('Ayon', 'Royal Enfield') ('Reema', 'Royal Enfield') ('Anshul', 'Honda City') (None, 'Tesla Model 3') 说明 SQL 查询使用 RIGHT JOIN,这意味着将返回 Vehicle 表中的所有行,以及 User 表中的匹配行。如果未找到匹配项,则 User 列将显示 None。连接条件 User.fav = Vehicle.id 将用户的收藏车辆 ID 与 Vehicle 表中的车辆 ID 链接起来。 结论Python MySQL JOIN 是一种重要的操作,用于通过两个或多个表之间的公共列来组合它们的列。通过使用 INNER JOIN、LEFT JOIN 和 RIGHT JOIN 等 JOIN,我们可以获取不同的输出集。例如,如果我们只想匹配记录、一个表中的所有记录或另一个表中的所有记录,使用 JOIN 都可以实现。 Python MySQL JOIN 操作常见问题解答1. 如何在 Python 中执行 JOIN 操作? 您可以通过使用 mysql.connector 将 Python 连接到 MySQL 来执行 JOIN 操作。接下来,需要创建一个游标,编写 SQL JOIN 查询,使用 cursor.execute() 执行它,并使用 fetchall() 或 fetchone() 获取结果。 2. INNER JOIN、LEFT JOIN 和 RIGHT JOIN 之间有什么区别?
3. MySQL 中的 LEFT JOIN 返回什么? LEFT JOIN 返回左表中的所有行和右表中的匹配行。 4. 当在 MySQL 的 LEFT JOIN 中没有找到匹配行时,结果会是什么? 当在右表中没有找到匹配行时,LEFT JOIN 仍然返回左表中的所有行,但右表中的列将填充 NULL 值。 下一个主题执行事务 |
我们请求您订阅我们的新闻通讯以获取最新更新。