-1

以下是我正在为我的一个查询连接所做的工作,我正在尝试创建一个表,其中包含一般放映详细信息并与电影详细信息相结合。我不断收到错误 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

其中 m1.screeningID = s1.screeningID

4

2 回答 2

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语句结合起来。

于 2016-12-15T20:42:57.903 回答
0

您需要为您的表设置别名,并且参与 UNION 的每个查询都必须具有相同数量的列。

于 2016-12-14T21:17:00.397 回答