gpt4 book ai didi

mysql - 显示所有记录,即使为 NULL

转载 作者:搜寻专家 更新时间:2023-10-30 22:00:29 24 4
gpt4 key购买 nike

我在下面有一个 View ,其中包含我想要显示的所有内容,但是只有在每个表中都为特定电影添加了所有内容时才会显示(如果从那以后开始)。就像添加电影一样,只有当副本、 Actor 、角色和类型已连接到该特定电影时, View 才会显示,但是如果没有为电影添加任何内容,则不会显示。我是这方面的新手,所以非常感谢任何帮助。

CREATE VIEW viewAllMovieDetails AS
SELECT `tblMovie`.`MovieName`, `tblCopy`.`CpyEdition`, `tblCopy`.`CpyCondition`,
`tblCopy`.`CpyAmountPaid`, `tblCopy`.`CpyNote`, `tblMovie`.`MovieRating`,
`tblMovie`.`MovieLength`,`tblMovie`.`MovieYear`, `tblActor`.`ActLastName`,
`tblActor`.`ActFirstName`, `tblRole`.`Role`, `tblMovieGenre`.`GenGenre`
FROM `tblCopy`, `tblMovie`, `tblActor`, `tblRole`, `tblMovieGenre`
WHERE `tblCopy`.`MovieID` = `tblMovie`.`MovieID` AND `tblRole`.`MovieID` = `tblMovie`.`MovieID`
AND `tblRole`.`ActID` = `tblActor`.`ActID` AND `tblMovieGenre`.`MovieID` = `tblMovie`.`MovieID`;

最佳答案

您应该使用 LEFT JOIN。如果它们是任何 NULL,它们将以这种类型的连接显示。

CREATE VIEW viewAllMovieDetails AS
SELECT tblMovie.MovieName, tblCopy.CpyEdition, tblCopy.CpyCondition,
tblCopy.CpyAmountPaid, tblCopy.CpyNote, tblMovie.MovieRating,
tblMovie.MovieLength,tblMovie.MovieYear, tblActor.ActLastName,
tblActor.ActFirstName, tblRole.Role, tblMovieGenre.GenGenre
FROM tblCopy
LEFT JOIN tblMovie tm USING(MovieID)
LEFT JOIN tblActor ta USING(ActID)
LEFT JOIN tblRole tr ON tr.ActID = ta.ActID
LEFT JOIN tblMovieGenre tg ON tg.MovieID = tm.MovieID;

使用别名也是一种好习惯 ;)如果您将条件放在内部而不是左连接的位置。

关于mysql - 显示所有记录,即使为 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com