Estoy ejecutando esta consulta en MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
y está dando este error:
Cada tabla derivada debe tener su propio alias.
¿Qué está causando este error?
Estoy ejecutando esta consulta en MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
y está dando este error:
Cada tabla derivada debe tener su propio alias.
¿Qué está causando este error?
)
en una consulta con muchosUNION ALL
s.Respuestas:
Cada tabla derivada (subconsulta de AKA) debe tener un alias. Es decir, cada consulta entre paréntesis debe tener un alias (
AS whatever
), que puede usarse para referirse a ella en el resto de la consulta externa.En su caso, por supuesto, la consulta completa podría reemplazarse con:
fuente
AS
declaraciones. Pensé que solo mostrabas la taquigrafía. Eliminé mi voto negativo.SELECT...FROM...WHERE x NOT IN (subquery) AS T
provocarán un errorCreo que te está pidiendo que hagas esto:
Pero, ¿por qué escribirías esta consulta en primer lugar?
fuente
Aquí hay un ejemplo diferente que no se puede reescribir sin alias (no se puede
GROUP BY DISTINCT
).Imagine una tabla llamada
purchases
que registra las compras realizadas porcustomers
atstores
, es decir, es una tabla de muchos a muchos y el software necesita saber qué clientes han realizado compras en más de una tienda:.. romperá con el error
Every derived table must have its own alias
. Arreglar:(Tenga en cuenta el
AS custom
alias).fuente