我有以下三个表和关键字段
Location: location_key
room: location_key, room_key
floor: location_key, floor_key
数据看起来像
location:ABC, Room:location_key,ABC; room_key,1,2,3
location:ABC, Floor:location_key,ABC; floor_key,2,4,5
所以输出应该是这样的
Location:ABC Room:1 floor:null
Location:ABC Room:2 floor:2
Location:ABC Room:3 floor:null
Location:ABC Room:null floor:4
Location:ABC Room:null floor:5
我似乎无法获得正确的连接结构来使其工作。我得到的地板填充在空,不正确或反之亦然。
有人能帮我正确的连接结构,请
2条答案
按热度按时间ki1q1bka1#
您可以使用
LEFT OUTER JOIN
和FULL OUTER JOIN
以及括号的组合来指定联接中的优先级:其中,对于样本数据:
输出:
| 位置_键|楼层键|房间钥匙|
| --|--|--|
| ABC| 1 |* 空 |
| ABC| 2 | 2 |
| ABC| 3 | 空 *|
| ABC| * 空 *| 4 |
| ABC| * 空 *| 5 |
fiddle
noj0wjuj2#
你似乎想要一个完整的外部连接的flloors和房间,以便不仅得到地板/房间匹配,但也有地板没有房间和房间没有地板。
(将楼层键与房间键进行比较看起来有点奇怪,但我猜这只是由于不幸的命名选择。