Używam tego zapytania na MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
i daje ten błąd:
Każda tabela pochodna musi mieć własny alias.
Co powoduje ten błąd?
Używam tego zapytania na MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
i daje ten błąd:
Każda tabela pochodna musi mieć własny alias.
Co powoduje ten błąd?
)
zapytanie w wieluUNION ALL
s.Odpowiedzi:
Każda tabela pochodna (zapytanie podrzędne AKA) musi rzeczywiście mieć alias. Oznacza to, że każde zapytanie w nawiasach musi mieć alias (
AS whatever
), którego można użyć do odwołania się do niego w pozostałej części zapytania zewnętrznego.W twoim przypadku oczywiście całe zapytanie można zastąpić:
źródło
AS
instrukcje. Myślałem, że pokazałeś tylko stenografię. usunąłem moją opinię.SELECT...FROM...WHERE x NOT IN (subquery) AS T
spowodują błądMyślę, że prosi cię o to:
Ale dlaczego miałbyś pisać to zapytanie?
źródło
Oto inny przykład, którego nie można przepisać bez aliasów (nie można
GROUP BY DISTINCT
).Wyobraź sobie tabelę,
purchases
która rejestruje zakupy dokonane przezcustomers
atstores
, tzn. Jest to tabela od wielu do wielu, a oprogramowanie musi wiedzieć, którzy klienci dokonali zakupów w więcej niż jednym sklepie:... zepsuje się z błędem
Every derived table must have its own alias
. Naprawić:(Zwróć uwagę na
AS custom
alias).źródło