Maison >base de données >tutoriel mysql >Comment résoudre les erreurs de nom de colonne ambiguë dans les requêtes SQL ?

Comment résoudre les erreurs de nom de colonne ambiguë dans les requêtes SQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-05 12:22:40544parcourir

How to Resolve Ambiguous Column Name Errors in SQL Queries?

Erreur de nom de colonne ambigu avec les requêtes SQL

Dans les requêtes SQL, la rencontre d'une erreur de nom de colonne ambigu se produit généralement lors de la sélection de données dans plusieurs tables à l'aide de JOIN et d'au moins une colonne portant le même nom dans différentes tables. Cette erreur se produit lorsque SQL Server ne peut pas déterminer à partir de quelle table récupérer les données de la colonne ambiguë.

Pour résoudre cette ambiguïté, spécifiez explicitement le nom de la table avant le nom de la colonne dans la requête. Par exemple, dans votre requête, vous disposez de deux tables, Invoices et InvoiceLineItems, qui comportent toutes deux une colonne nommée InvoiceID. Pour lever l'ambiguïté, utilisez Invoices.InvoiceID pour faire spécifiquement référence à la colonne InvoiceID dans la table Invoices.

Voici une version modifiée de votre requête qui inclut les noms de table pour les colonnes ambiguës :

SELECT 
    VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount
FROM Vendors 
JOIN Invoices ON (Vendors.VendorID = Invoices.VendorID)
JOIN InvoiceLineItems ON (Invoices.InvoiceID = InvoiceLineItems.InvoiceID)
WHERE  
    Invoices.InvoiceID IN
        (SELECT InvoiceSequence 
         FROM InvoiceLineItems
         WHERE InvoiceSequence > 1)
ORDER BY 
    VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount

En spécifiant le nom de la table, vous aidez SQL Server à identifier la colonne correcte à partir de laquelle récupérer les données, éliminant ainsi l'ambiguïté et permettant à la requête de s'exécuter. avec succès.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn