MySQL Workbench错误1066

时间:2016-12-14 21:05:07

标签: mysql mysql-error-1066

以下是我正在为我的一个查询连接工作的内容,我正在尝试创建一个表格,其中包含一般的筛选详细信息并结合电影详细信息。我一直收到错误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;

更新:

感谢各位回复,我一直是一个绝对完整的菜鸟和复杂的东西(像往常一样)。经过一番挖掘后,这就是我提出的完美工作原理。我试图通过组合来自多个表的数据,在一个表中的筛选中输出座位可用性。

选择     s1.ScreeningID,     s1.MovieID,     s1.SeatCapacity,     s1.SeatsAvailable,     m1.Director,     m1.MovieName,     m1.Genre

FROM筛选s1,电影m1

WHERE m1.screeningID = s1.screeningID

2 个答案:

答案 0 :(得分:0)

您需要对表进行别名,并且参与UNION的每个查询都必须具有相同的列数。

答案 1 :(得分: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语句结合起来。