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 ?
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!