2016-12-14 5 views
-1

Ce qui suit est ce que je suis en train de travailler pour l'une de mes jointures de requête, j'essaie de créer une table où les détails généraux de projection et combinés avec les détails du film. Je continue d'obtenir l'erreur 1066. Quelqu'un peut-il aider ou expliquer pourquoi?MySQL Workbench Error 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; 

MISE À JOUR:

Merci les gars pour les réponses, j'ai été un Noob complet absolu et sur les choses compliquées (comme d'habitude). Après quelques recherches, c'est ce que j'ai trouvé qui fonctionne parfaitement. J'essayais d'afficher la disponibilité des places dans un tableau dans une table en combinant les données de plusieurs tables.

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

DE dépistage s1, film

m1

OÙ m1.screeningID = s1.screeningID

+0

Ce qui n'était pas clair sur le message d'erreur? Avez-vous lu l'une des autres questions avec la balise ['mysql-error-1066'] (http://stackoverflow.com/questions/tagged/mysql-error-1066)? – shmosel

+0

Votre deuxième requête a 'FROM movie' mais utilise ensuite ON ON screen.ID. Y a-t-il une faute de frappe dans l'un d'entre eux? – Barmar

+0

Cela ne ressemble pas à une utilisation appropriée de 'UNION'. Pouvez-vous montrer un échantillon des résultats escomptés? – Barmar

Répondre

0

Vous devez créer un alias de vos tables et également chaque requête qui participe à l'Union doit avoir le même nombre o f colonnes.

0

Remarque: UNION est deux requêtes complètes (pour la plupart indépendantes) SELECT.

Votre deuxième requête:

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

n'a même pas une table ou un alias appelé screening. (Ainsi que la colonne comptages ne correspond pas à la UNION) Il a également la table movie inclus deux fois, donc chaque colonne que vous accédez va être ambigu et générer une erreur sauf si vous utilisez des alias de table par exemple: FROM movie AS m1 etc.

Je recommande de commencer par faire fonctionner chaque requête distincte par elle-même, puis de les combiner avec une instruction UNION.