Я выполняю этот запрос на MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
и это дает эту ошибку:
Каждая производная таблица должна иметь свой псевдоним.
Что вызывает эту ошибку?
Я выполняю этот запрос на MySQL
SELECT ID FROM (
SELECT ID, msisdn
FROM (
SELECT * FROM TT2
)
);
и это дает эту ошибку:
Каждая производная таблица должна иметь свой псевдоним.
Что вызывает эту ошибку?
)
в запросе с большим количествомUNION ALL
s.Ответы:
Каждая производная таблица (подзапрос AKA) должна действительно иметь псевдоним. Т.е. каждому запросу в скобках должен быть присвоен псевдоним (
AS whatever
), который можно использовать для ссылки на него в остальной части внешнего запроса.В вашем случае, конечно, весь запрос можно заменить на:
источник
AS
утверждения. Я думал, что вы только показали стенографию. убрал мое понижение.SELECT...FROM...WHERE x NOT IN (subquery) AS T
будет вызывать ошибкуЯ думаю, что он просит вас сделать это:
Но зачем писать этот запрос в первую очередь?
источник
Вот другой пример, который нельзя переписать без псевдонимов (не могу
GROUP BY DISTINCT
).Представьте себе таблицу, в
purchases
которой записываются покупки, сделанные вcustomers
atstores
, т.е. это таблица «многие ко многим», и программное обеспечение должно знать, какие клиенты совершали покупки в более чем одном магазине:... сломается с ошибкой
Every derived table must have its own alias
. Исправить:(Обратите внимание на
AS custom
псевдоним).источник