Maison >développement back-end >tutoriel php >Comment puis-je éviter toute ambiguïté lors de la récupération de résultats avec des noms de colonnes qui se chevauchent dans SQL ?

Comment puis-je éviter toute ambiguïté lors de la récupération de résultats avec des noms de colonnes qui se chevauchent dans SQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-06 10:16:12958parcourir

How Can I Avoid Ambiguity When Retrieving Results with Overlapping Column Names in SQL?

Récupération de résultats avec des noms de colonnes ambigus

Lors de la récupération des résultats d'une base de données contenant plusieurs tables avec des noms de colonnes qui se chevauchent, vous pouvez rencontrer des ambiguïtés en accédant aux valeurs souhaitées. Dans cet exemple, nous rencontrons deux tables : NEWS et USERS, toutes deux ayant une colonne 'id'.

Énoncé du problème

Pour récupérer l'ID d'actualité et l'ID utilisateur, nous exécutons la requête SQL suivante :

SELECT * FROM news JOIN users ON news.user = user.id

Cependant, lors de l'accès aux résultats en PHP à l'aide d'un tableau associatif et de la syntaxe $row['column-name'], nous sommes confrontés au défi d'identifier les colonnes d'ID spécifiques.

Solution

Pour résoudre cette ambiguïté, nous pouvons attribuer des alias à les colonnes sélectionnées. En utilisant ces alias, nous pouvons référencer explicitement la colonne souhaitée de la table spécifique.

La requête SQL modifiée avec les alias :

$query = 'SELECT news.id AS newsId, user.id AS userId, [OTHER FIELDS HERE] FROM news JOIN users ON news.user = user.id'

Maintenant, lors de la récupération des résultats en PHP, nous pouvons utiliser les alias pour accéder aux colonnes, par exemple :

$newsId = $row['newsId'];
$userId = $row['userId'];

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