外部キーが NULLの場合でも機能するビューを作成する方法を知りたいです。たとえば、主キーと 2 つの外部キーを持つテーブルPersonがあります。
- IdPerson
- FkName
- Fk姓
どちらの外部キーも NULL にすることができます。これで、 table Nameという 2 つのテーブルも作成されました。
- IdName
- 名前
および表の姓:
- Id姓
- 姓
ここで、各 Person の名前と姓を表示するビューを作成します。
CREATE VIEW `Database`.`ViewPerson` AS
SELECT `N`.`Name`, `S`.`Surname`
FROM `Person` `P`, `Name` `N`, `Surname` `S`
WHERE (`P`.`FkName` = `N`.`IdName`) AND (`P`.`FkSurname` = `S`.`IdSurname`)
問題は、外部キー FkSurname が NULL の場合、FkName が定義されていてもその行が表示されないことです。両方の外部キーが NULL であっても、両方の列が NULL である行を返すことを望みます。これで、Name/Surname の下に NULL を持つテーブル Name とテーブル Surname 行を追加し、FkName と FkSurname でこれら 2 つの列の下に NULL 値を持つ行を参照することで解決できることがわかりました。しかし、外部キーが NULL で行が返される解決策があるかどうかを知りたいと思います。