Estou executando esta consulta no MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
e está dando este erro:
Toda tabela derivada deve ter seu próprio alias.
O que está causando esse erro?
Estou executando esta consulta no MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
e está dando este erro:
Toda tabela derivada deve ter seu próprio alias.
O que está causando esse erro?
)
em uma consulta com muitosUNION ALL
s.Respostas:
Toda tabela derivada (subconsulta AKA) deve realmente ter um alias. Ou seja, cada consulta entre parênteses deve receber um alias (
AS whatever
), que pode ser usado para se referir a ela no restante da consulta externa.No seu caso, é claro, toda a consulta pode ser substituída por:
fonte
AS
instruções. Eu pensei que você só mostrasse a taquigrafia. removi meu voto negativo.SELECT...FROM...WHERE x NOT IN (subquery) AS T
irão desencadear um erro #Eu acho que está pedindo para você fazer isso:
Mas por que você escreveria essa consulta em primeiro lugar?
fonte
Aqui está um exemplo diferente que não pode ser reescrito sem apelidos (não pode
GROUP BY DISTINCT
).Imagine uma tabela chamada
purchases
que registra as compras feitas emcustomers
atstores
, ou seja, é uma tabela de muitos para muitos e o software precisa saber quais clientes fizeram compras em mais de uma loja:..vai quebrar com o erro
Every derived table must have its own alias
. Consertar:(Observe o
AS custom
alias).fonte