Aquí está un ejemplo diferente que no puede ser reescrito sin alias (no puede GROUP BY DISTINCT
).
Imagínese una tabla llamada purchases
que registra las compras realizadas por customers
en stores
, es decir, se trata de un muchos a muchos mesa y el software tiene que saber qué clientes han realizado compras en más de una tienda:
SELECT DISTINCT customer_id, SUM(1)
FROM (SELECT DISTINCT customer_id, store_id FROM purchases)
GROUP BY customer_id HAVING 1 < SUM(1);
. .se romperá con el error Every derived table must have its own alias
. Para solucionar:
SELECT DISTINCT customer_id, SUM(1)
FROM (SELECT DISTINCT customer_id, store_id FROM purchases) AS custom
GROUP BY customer_id HAVING 1 < SUM(1);
(Nota AS custom
los alias).
¿No podría simplemente simplificar esto como "seleccionar ID de TT2"? – DMKing
Recibí este error recientemente porque tenía un ')' extra en una consulta con muchos 'UNION ALL's. – mpen
Viendo cómo esta es la búsqueda número 1 en Google ... La respuesta aceptada realmente no responde al error 'Cada tabla derivada debe tener su propio alias'. Mira debajo para más información. –