INNER JOIN只返回两表中完全匹配的记录,过滤掉任一表无对应数据的行;需通过ON指定等值关联条件,支持多表连续连接,但所有关联条件必须同时满足。

SQL内连接(INNER JOIN)只返回两个表中匹配的记录,不匹配的行会被自动过滤掉。这是最常用的连接方式,适合需要严格对应关系的查询场景。
内连接的标准写法是用 INNER JOIN ... ON 明确指定关联条件,ON 后必须是两个表字段之间的逻辑等值判断(如 users.id = orders.user_id)。虽然 JOIN 默认就是 INNER JOIN,但显式写出更清晰、可读性更强。
比如要查看每个订单的下单人姓名和邮箱,就需要把 orders 表和 users 表连起来:
SELECT o.id, o.amount, u.name, u.email FROM orders AS o INNER JOIN users AS u ON o.user_id = u.id;
这里 o.user_id 是外键,指向 users.id 主键。只要 orders 中某条记录的 user_id 在 users 表里不存在,这条订单就不会显示。
当需要同时获取订单、用户、商品三方面信息时,可以连续使用 INNER JOIN:
SELECT o.id, u.name, p.title, o.quantity, o.amount FROM orders o INNER JOIN users u ON o.user_id = u.id INNER JOIN products p ON o.product_id = p.id;
注意:每加一个表,就要新增一个 ON 条件;所有连接条件都必须满足,缺一不可。如果某个订单的 product_id 在 products 表中找不到,整条记录也会被排除。
INNER JOIN 容易出错的地方往往不在语法,而在业务理解:
WHERE o.user_id = u.id),这在多表时可能引发笛卡尔积或逻辑混乱u.id 和 p.id),否则会报错基本上就这些。INNER JOIN 不复杂,但容易忽略匹配逻辑是否符合实际业务含义。
以上就是SQL内连接使用说明_SQL INNERJOIN常见实例解析的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号