那我如果是炼器师,只想清点所有的法宝,不管有没有人拿,该怎么办?
反其道而行之,用 RIGHT JOIN。它会保留右表(Weapons)的所有记录。
RIGHT JOIN 会从右表返回所有的行,即使在左表中没有匹配。如果没有匹配,左表的部分会显示为 NULL。
SELECT Disciples.Name, Weapons.WeaponName
FROM Disciples
RIGHT JOIN Weapons
ON Disciples.Weapon_ID = Weapons.W_ID;
| Name | WeaponName |
|---|---|
| 张小凡 | 噬魂棒 |
| 陆雪琪 | 天耶神剑 |
| 林惊羽 | 斩龙剑 |
| NULL | 诛仙剑 |
看,诛仙剑出现了!虽然它现在没有主人(Name 为 NULL)。
而“周一仙”不见了,因为他是左表独有的,且没有对应的右表记录。
这就像是“宝物展览”,只在乎宝物在不在,不在乎谁拿着它。