J'exécute cette requête sur MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
et il donne cette erreur:
Chaque table dérivée doit avoir son propre alias.
Quelle est la cause de cette erreur?
J'exécute cette requête sur MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
et il donne cette erreur:
Chaque table dérivée doit avoir son propre alias.
Quelle est la cause de cette erreur?
)
dans une requête avec beaucoup deUNION ALL
s.Réponses:
Chaque table dérivée (sous-requête AKA) doit en effet avoir un alias. C'est-à-dire que chaque requête entre crochets doit recevoir un alias (
AS whatever
), qui peut être utilisé pour s'y référer dans le reste de la requête externe.Dans votre cas, bien sûr, la requête entière pourrait être remplacée par:
la source
AS
instructions. Je pensais que tu ne montrais que la sténographie. supprimé mon downvote.SELECT...FROM...WHERE x NOT IN (subquery) AS T
déclencheront une erreurJe pense que cela vous demande de faire ceci:
Mais pourquoi voudriez-vous écrire cette requête en premier lieu?
la source
Voici un exemple différent qui ne peut pas être réécrit sans alias (impossible
GROUP BY DISTINCT
).Imaginez une table appelée
purchases
qui enregistre les achats effectués parcustomers
àstores
, c'est- à -dire qu'il s'agit d'une table plusieurs à plusieurs et que le logiciel doit savoir quels clients ont effectué des achats dans plusieurs magasins:... rompra avec l'erreur
Every derived table must have its own alias
. Pour corriger:(Notez l'
AS custom
alias).la source