Maison > base de données > tutoriel mysql > Pourquoi MySQL nécessite-t-il des alias pour les tables dérivées ?

Pourquoi MySQL nécessite-t-il des alias pour les tables dérivées ?

DDD
Libérer: 2024-12-26 07:44:13
original
818 Les gens l'ont consulté

Why Does MySQL Require Aliases for Derived Tables?

Déchiffrer l'énigme « Chaque table dérivée doit avoir son propre alias » dans MySQL

Lorsque vous rencontrez l'erreur « Chaque table dérivée doit avoir son propre alias » dans MySQL, il est crucial d'approfondir le concept de tables dérivées. Ces tables, également appelées sous-requêtes, nécessitent un alias explicite pour faciliter le référencement dans la requête externe.

Exploration du problème

Prenons l'exemple de requête à l'origine de l'erreur :

SELECT ID FROM (
    SELECT ID, msisdn
    FROM (
        SELECT * FROM TT2
    )
);
Copier après la connexion

Cette requête se compose de deux sous-requêtes imbriquées. Alors que la sous-requête la plus interne récupère les données de la table « TT2 », l'erreur survient car les deux sous-requêtes n'ont pas d'alias.

Créer une solution

Pour rectifier cette erreur, chaque sous-requête La requête doit se voir attribuer un alias unique. La requête corrigée ressemblerait à :

SELECT ID FROM (
    SELECT ID, msisdn FROM (
        SELECT * FROM TT2
    ) AS T1
) AS T2
Copier après la connexion

Ici, les deux sous-requêtes se voient attribuer des alias (« T1 » et « T2 »), permettant à la requête externe de référencer leurs résultats respectifs.

Rationaliser la requête

Dans les cas où la sous-requête extrait simplement des données d'une table, la construction entière peut être simplifié.

SELECT ID FROM TT2
Copier après la connexion

Cette requête rationalisée élimine la couche de sous-requête tout en obtenant le résultat souhaité.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal