You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

复合主键表与多外键表SQL关联查询异常求助

SQL复合主键关联多外键字段的查询问题解决

问题描述

关联两张表时出现关联错误:Table1以Type+Code作为复合主键(PK),用于唯一标识行;Table2包含多个以Code为外键(FK)的字段(Code1、Code2等)。需要查询客户名称、各Code字段及其对应的Description,但使用普通INNER JOIN时,所有Code对应的Description均显示为第一个匹配值,无法正确关联。例如Code2为1时,错误显示"potential A"而非正确的"Premium"。

表结构

  • Table1:Type(PK)、Code(PK)、Description
  • Table2:Number(PK)、Name、Address、Code1(FK)、Code2(FK)、Code3(FK)

错误查询语句

SELECT a.Number, a.Name, a.Code1, b.description, a.Code2, b.description
FROM Table2 a
INNER JOIN Table1 b ON a.Code1 = b.Code

错误结果

所有Code对应的Description均为第一个匹配值,如BMW的Code2=2时显示"potential A"。

预期输出

显示Name、Code1及对应Description、Code2及对应Description等正确关联的结果。

解决方案(子查询)

SELECT a.Number, a.Name, a.Code1,
Description = (SELECT b.description FROM Table1 b WHERE a.Code1 = b.Code),
a.Code2,
Description = (SELECT b.description FROM Table1 b WHERE a.Code2 = b.Code)
FROM Table2 a

内容的提问来源于stack exchange,提问作者nadinexyz24

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 05:00:55