我想知道如何创建视图,即使外键为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