【发布时间】:2020-04-27 15:10:55
【问题描述】:
假设我有 3 张桌子
表 1
ID PERSON
1 ABC
3 DEF
5 GHI
7 JKL
表2
ID SPORT
1 CRICKET
2 RUNNING
3 TENNIS
1 HOCKEY
3 FOOTBALL
表3
SPORT PLAYER
CRICKET SACHIN
RUNNING USAIN
TENNIS NULL
HOCKEY NULL
FOOTBALL MESSI
当我使用这个查询时
SELECT A.PERSON, B.SPORT, C.PLAYER
FROM TABLE1 A LEFT JOIN TABLE2 B ON A.ID = B.ID
LEFT JOIN TABLE3 C ON B.SPORT = C.SPORT
这给了我结果-
PERSON SPORT PLAYER
ABC CRICKET SACHIN
ABC HOCKEY NULL
DEF TENNIS NULL
GHI NULL NULL
JKL NULL NULL
DEF FOOTBALL MESSI
我希望将 PLAYER 列中的 NULL 值填充为同一个人的先前 PLAYER 值。 我想要查询结果如下
PERSON SPORT PLAYER
ABC CRICKET SACHIN
ABC HOCKEY SACHIN
DEF FOOTBALL MESSI
DEF TENNIS MESSI
GHI NULL NULL
JKL NULL NULL
有什么方法可以实现这一点。请帮忙
【问题讨论】:
-
上一个 - 根据什么?
-
@jarlh 请看最后一个查询结果,我提到了人 ABC 有 SACHIN & NULL 值与之关联,所以我希望 ABC 人都应该返回 SACHIN 而不是 SACHIN & NULL