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

基于双外键列关联表的SQL查询结果不符求助

问题解决:关联双外键到同表的SQL查询修正

数据表结构与数据

TablePC表

nonameparty19party24
1A11
2B12

party19和party24为关联TableParty.no的外键

TableParty表

noname
1X
2Y

原查询的问题

你当前的SQL只对TableParty做了一次关联,并且设置了TableParty.no同时等于party19和party24的条件:

select
    TablePC.name
   ,TableParty.name as A
   ,TableParty.name as B
from TablePC 
join TableParty on TableParty.no = TablePC.party19 and TableParty.no=TablePC.party24;

这个条件仅当party19与party24值完全相同时才会匹配(比如第一条数据A),而第二条数据B的两个外键值不同,因此无法被查询到,导致结果不符合预期。

正确的查询语句

要分别获取两个外键对应的TableParty名称,需要两次关联TableParty表,并为每次关联指定不同的别名,避免冲突:

select
    TablePC.name
   , tp1.name as A
   , tp2.name as B
from TablePC
join TableParty tp1 on tp1.no = TablePC.party19
join TableParty tp2 on tp2.no = TablePC.party24;

预期结果验证

执行上述SQL后,将得到你想要的结果:

nameAB
AXX
BXY

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:45:06