因此,我为电影数据库(电影,电影人,人物,PersonEmails,角色,FilmGenres,流派)提供了很多表格。如何从多个表中获取所有记录,即使那些没有值的记录
我想输出尽可能多的信息存在的所有电影。例如一个行会:
Title | Date | Budget | Actor | Director | Genre |
Alien | 1923 | 3322 | someActor | someDirector | Scifi
SELECT Films.Title, Films.Date, Films.Budget, Persons.FirstName, Persons.LastName, Roles.RoleName, Genres.Name
FROM Films INNER JOIN
FilmPersons ON Films.FilmID = FilmPersons.FilmID INNER JOIN
Persons ON FilmPersons.PersonID = Persons.PersonID INNER JOIN
Roles ON FilmPersons.RoleID = Roles.RoleID INNER JOIN
FilmGenres ON Films.FilmID = FilmGenres.FilmID INNER JOIN
Genres ON FilmGenres.GenreID = Genres.GenreID
但上面的结果不显示所有有关电影,如何更改SQL,这样我可以选择所有字段的信息?
我想我明白了。但为了获得所有存在的电影(即使没有任何其他信息比他们自己的表格提供标题,日期和预算),我必须加入所有内容。这有意义吗? 另外,是否有可能根据特定列“合并”行?即一个电影片名,但是许多演员或流派 - >一行,其中演员和/或流派由逗号(,)分开。是http://stackoverflow.com/questions/273238/how-to-use-group-by-to-concatenate-strings-in-sql-serverthis我的情况? – Tsafou
根据特定的列可以“合并”行,就像两列:一个用于电影名称,另一个用于不同的演员。 但我想知道你只需要在SQL脚本中做到这一点?或者你可以通过网页显示信息或其他东西? 如果您要通过网页显示电影信息,只需让代码隐藏即可使用* LEFT JOIN *进行工作。这会更好。 –