因此,我爲電影數據庫(電影,電影人,人物,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 *進行工作。這會更好。 –