Heim >Datenbank >MySQL-Tutorial >Warum benötigt MySQL Aliase für abgeleitete Tabellen?

Warum benötigt MySQL Aliase für abgeleitete Tabellen?

DDD
DDDOriginal
2024-12-26 07:44:13762Durchsuche

Why Does MySQL Require Aliases for Derived Tables?

Entschlüsselung des Rätsels „Jede abgeleitete Tabelle muss ihren eigenen Alias ​​haben“ in MySQL

Wenn in MySQL der Fehler „Jede abgeleitete Tabelle muss ihren eigenen Alias ​​haben“ auftritt, Es ist wichtig, sich mit dem Konzept abgeleiteter Tabellen zu befassen. Diese Tabellen, auch Unterabfragen genannt, erfordern einen expliziten Alias, um die Referenzierung innerhalb der äußeren Abfrage zu erleichtern.

Einblick in das Problem

Nehmen wir die Beispielabfrage, die den Fehler verursacht:

SELECT ID FROM (
    SELECT ID, msisdn
    FROM (
        SELECT * FROM TT2
    )
);

Diese Abfrage besteht aus zwei verschachtelten Unterabfragen. Während die innerste Unterabfrage Daten aus der Tabelle „TT2“ abruft, tritt der Fehler auf, weil beiden Unterabfragen ein Alias ​​fehlt.

Erstellen einer Lösung

Um diesen Fehler zu beheben, muss jede Unterabfrage Der Abfrage muss ein eindeutiger Alias ​​zugewiesen werden. Die korrigierte Abfrage würde wie folgt aussehen:

SELECT ID FROM (
    SELECT ID, msisdn FROM (
        SELECT * FROM TT2
    ) AS T1
) AS T2

Hier werden beiden Unterabfragen Aliase zugewiesen ('T1' und 'T2'), sodass die äußere Abfrage auf ihre jeweiligen Ergebnisse verweisen kann.

Optimieren der Abfrage

In Fällen, in denen die Unterabfrage lediglich Daten aus einer Tabelle extrahiert, kann dies für das gesamte Konstrukt gelten vereinfacht.

SELECT ID FROM TT2

Diese optimierte Abfrage eliminiert die Unterabfrageebene und erzielt dennoch das gewünschte Ergebnis.

Das obige ist der detaillierte Inhalt vonWarum benötigt MySQL Aliase für abgeleitete Tabellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn