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