Таинственная переменная в SQL-запросе - PullRequest
2 голосов
/ 22 декабря 2011

Я смотрю на некоторый SQL-код со следующей структурой:

set @var =
(
    select count(1) from
    (
        select * from table where field = 1
    )
    someVariable
)

Кажется, он не запустится, если в утверждении не указано «someVariable». У меня вопрос, что представляет это «someVariable», и почему это в запросе? Я не понимаю, почему я не могу установить @var для оператора select count, поэтому «someVariable» действительно отбрасывает меня.

Ответы [ 2 ]

6 голосов
/ 22 декабря 2011

Производные таблицы должны иметь псевдонимы. someVariable в этом случае работает как псевдоним.

0 голосов
/ 22 декабря 2011

Когда я выполнял аналогичный запрос в MySQL, я получал:

ERROR 1248 (42000): Every derived table must have its own alias

Внутренний выбор фактически приводит к производной таблице, а someVariable - это ее псевдоним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...