我想知道如何創建視圖,即使外鍵爲NULL也可以。例如,我們有表人其中有一個主鍵和兩個外鍵:MySQL查看外鍵可以爲NULL的位置
- IdPerson
- FkName
- FkSurname
外國鍵可以爲NULL。現在,我們也有兩個表,表名稱:
- IdName
- 名稱
而且表姓:
- IdSurname
- 姓
現在我們創建視圖爲每個人物顯示姓名:
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的行。現在我知道我可以通過在表名和表Surname行中添加名稱/姓名下的NULL,然後在FkName和FkSurname引用中在這兩列下具有NULL值的行來解決此問題。但是我仍然想知道是否有一個解決方案,其中外鍵是NULL並且該行被返回。
你應該看看左加入 http://www.w3schools.com/sql/sql_join_left.asp – sergiofbsilva 2012-07-07 17:21:44