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
DDDoriginal
2024-12-26 07:44:13765parcourir

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
    )
);

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

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

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!

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