INNER JOIN用于返回两表中满足连接条件的交集数据,只包含能匹配上的行。例如查询有订单的用户及其商品时,使用SELECT users.name, orders.product FROM users INNER JOIN orders ON users.user_id = orders.user_id;若用户无订单或订单无对应用户,则不显示。建议连接字段建立索引以提升性能,可多表连接且常用等值条件,也可用别名简化语法。与LEFT JOIN保留左表所有行不同,INNER JOIN仅返回双方匹配的记录,适合筛选共存数据场景。
在MySQL中,INNER JOIN 是最常用的表连接方式之一,用于从两个或多个表中提取**同时满足连接条件**的数据。它只返回两表中“交集”部分的记录,即左右两边都能匹配上的行。
结构如下:
SELECT 列名列表说明:
假设有两张表:
你想查出每个下单用户的姓名及其购买的商品。使用 INNER JOIN 如下:
SELECT users.name, orders.product结果将只包含那些在 users 表中有记录、且在 orders 表中也有对应订单的用户。如果某个用户没有下单,就不会出现在结果里;同样,孤立的订单(user_id 不存在于 users 表)也不会被返回。
”,不是全量数据如果你只关心“有订单的用户信息”,INNER JOIN 最合适。若想查“所有用户,包括没下单的”,就得用 LEFT JOIN。
基本上就这些。掌握 INNER JOIN 是写多表查询的基础,理解其“取交集”的逻辑很关键。不复杂但容易忽略。