2016-06-26 4 views
-1

Я пытаюсь запустить этот образец запрос:
SELECT * FROM (SELECT * FROM orders WHERE id > 2) AS o1 JOIN o1 AS o2 ON o1.id = o2.id;Mysql Псевдоним псевдоним

, но эта ошибка происходит:

Код ошибки: 1146 Таблица 'pnu.o1' Безразлично» t существует

Как я могу присоединиться к подзапросу с собой?

+0

Что вы пытаетесь сделать, это только, чтобы проверить, что работает? Чтобы присоединиться к подзапросу, вы должны использовать другой подзапрос, содержащий тот же набор результатов. – Philipp

+0

Я пытаюсь найти обходное решение для [этого вопроса] (http://dba.stackexchange.com/questions/142287/remove-result-set-doesnt-have-criteria), поскольку комментарий в этом сообщении заявил мне нужно сделать самостоятельное присоединение – alex

+1

В этом вопросе dba отсутствует деталь схемы с образцами данных, необходимыми для эффективного решения этой проблемы. Самоподключение крайне маловероятно. – Drew

ответ

0

В вашей БД нет ничего, кроме o1. Вы создали его как alias, но вы не можете использовать его alias.

Вы должны написать этот подзапрос снова и создать новый псевдоним этого:

SELECT * FROM 
    (SELECT * FROM orders WHERE id > 2) AS o1 
    JOIN 
    (SELECT * FROM orders WHERE id > 2) AS o2 
    ON o1.id = o2.id; 

или временная таблица может быть альтернативой.

+0

Он создал его как таблицу 'Derived' – Drew

+0

, не могли бы вы подробнее рассказать о решении * временного стола *? – alex

+0

Временная таблица будет плохой. Хочу это? – Drew

Смежные вопросы