2011-05-06 4 views
0

J'ai une question de ce type:Comment résoudre l'erreur: identifiant plusieurs parties ne pouvait pas être lié

Select addMovies.MovieName, GivenBy.UserName, TimeOfReview, Review 
    FROM Users, Reviews, given, addMovies 
    WHERE Reviews.ReviewId = given.ReviewId AND GivenBy.UserName = addMovies.UserName 
    ORDER BY TimeOfReview DESC 

Lorsque des schémas de tableaux individuels sont de la forme

Users (UserName, Password, EmailId, Loc, Info) 
    Reviews (ReviewId, ReviewRating, Review) 
    Given (ReviewId, UserName) 
    addMovies (MovieName, UserName) 

Je suis en train pour obtenir des avis donnés par un utilisateur particulier, mais en me donnant les erreurs:

L'identificateur en plusieurs parties "GivenBy.UserName" n'a pas pu être lié.

L'identificateur en plusieurs parties "GivenBy.UserName" n'a pas pu être lié.

Pourriez-vous s'il vous plaît laissez-moi savoir ce qui ne va pas, et que pourrais-je faire pour corriger cela?

+0

Cela ne devrait-il pas être Given.UserName? Est-ce que la table s'appelle GivenBy plutôt que Given? –

+0

La table (ou la référence de table) 'GivenBy' n'apparaît pas dans la partie FROM de l'instruction. – Bjoern

+0

Merci, j'ai aussi une table donnée, j'ai tout embrouillé. Pardon! – QPTR

Répondre

0

Cela ne devrait-il pas être Given.UserName? Est-ce que la table s'appelle GivenBy plutôt que Given?

+0

Oui, merci pour la réponse, j'ai mis ça mal, je l'ai compris maintenant :) – QPTR

0

GivenBy est pas dans votre article FROM (given est), ni est-il défini comme un alias pour une table qui est dans votre de clause.

+0

Merci pour la réponse, j'étais un peu énervé quand j'ai écrit cette question, mais j'ai fait cette requête avec INNER JOINS et ça a fonctionné parfaitement, merci ! – QPTR

0

Vous ne disposez pas d'une table appelée GivenBy à sélectionner. Probablement devrait être:

Select addMovies.MovieName, given.UserName, TimeOfReview, Review  
FROM Users, Reviews, given, addMovies  
WHERE Reviews.ReviewId = given.ReviewId AND given.UserName = addMovies.UserName   
ORDER BY TimeOfReview DESC 
+0

Merci pour la réponse, j'ai utilisé cette requête à la place pour ce que je voulais faire et cela fonctionne parfaitement: Sélectionnez Top 3 MovieName, TimeOfReview, UserName, GivenBy.ReviewId, Revue FROM donné INNER JOIN GivenBy ON donné.ReviewId = GivenBy.ReviewId Avis sur INNER JOIN ON Avis.ReviewId = given.ReviewId WHERE UserName = 'Nom' COMMANDER PAR TimeOfReview – QPTR

Questions connexes