2016-12-14 136 views
-1

以下是我正在爲其中一個查詢連接工作的內容,我嘗試創建一個表,其中包含一般屏幕細節並結合電影細節。我不斷收到錯誤1066.任何人都可以幫助或詳細說明爲什麼?MySQL工作臺錯誤1066

SELECT screening.ScreeningID, screening.MovieID, SeatCapacity, SeatsAvailable 
    FROM screening 
     LEFT JOIN movie 
    ON screening.ID = movie.ScreeningID 

    UNION 

SELECT MovieName, Director, Genre 
    FROM movie  
     RIGHT JOIN movie 
    ON screening.ID = movie.ScreeningID; 

UPDATE:

謝謝你們的答覆,我一直是一個絕對完整的小白和過於複雜的東西(像往常一樣)。經過更多的挖掘,這是我想出了完美的作品。我試圖通過合併來自多個表格的數據來在一張表中篩選出座位可用性。

SELECT s1.ScreeningID, s1.MovieID, s1.SeatCapacity, s1.SeatsAvailable, m1.Director, m1.MovieName, m1.Genre

通過篩查S1,電影M1

WHERE m1.screeningID = s1.screeningID

+0

什麼是不清楚的錯誤信息?你是否用['mysql-error-1066'](http://stackoverflow.com/questions/tagged/mysql-error-1066)標籤閱讀了其他任何問題? – shmosel

+0

你的第二個查詢有'FROM電影',但是使用'ON screening.ID'。其中一個有錯字嗎? – Barmar

+0

這看起來不像是適當使用'UNION'。你能展示一個預期結果的樣本嗎? – Barmar

回答

0

你需要你的別名表,也各自在該UNION參與查詢必須有相同數量的Ø f列。

0

注意:UNION是兩個完整的(大多數不相關的)SELECT查詢。

你的第二個查詢:

SELECT MovieName, Director, Genre 
    FROM movie  
     RIGHT JOIN movie 
    ON screening.ID = movie.ScreeningID; 

甚至沒有表或別名叫做screening。 (除了列計數不爲UNION匹配),它也有movie包含兩次表,所以你訪問的每一個欄將是不明確的,除非你使用表的別名產生一個錯誤,例如:FROM movie AS m1

我建議首先讓每個單獨的查詢自行工作,然後將它們與UNION語句組合起來。