关于使用INNER JOIN双表关联查询人员对应课程名称的SQL咨询
关于INNER JOIN连接条件使用AND的问题
- 完全可以在INNER JOIN的连接条件中使用AND,这是SQL里非常常规且合理的写法,尤其适合你这种需要多字段组合匹配的场景。
- 你的需求是基于
course和course_version_number的组合来关联两张表,必须用AND同时指定这两个字段的匹配规则,才能确保关联的是同一课程的对应版本,避免单一字段匹配导致的错误关联(比如把同一课程的不同版本错配给人员)。
举个符合你需求的正确SQL示例:
SELECT p.person_id, c.course_name FROM person_course p INNER JOIN course c ON p.course = c.course AND p.course_version_number = c.course_version_number;
如果你的SQL语句结构和上面一致,那就是完全正确的。
另外补充个优化建议:可以给course表的(course, course_version_number)创建联合索引,能显著提升这类多字段关联查询的效率。
内容的提问来源于stack exchange,提问作者J1987
相关产品推荐
相关产品推荐

