2015-10-27 6 views
2

Я хочу получить все дочерние элементы из моей таблицы указанного родителя. для этого я использую следующий код, но я получаю ошибку.Mysql select query with temp table

Я пробовал один и тот же код в sql, используя предложение «with», но как и в mysql, мы не можем использовать предложение «with», поэтому я использую это. Я нашел эту форму here.

Вот мой код

Select Ct.* from 
(Select * from data where parent_id=1 
    Union All 
    Select T.* From data T Join CT on T.parent_id=CT.id 
) CT 

И я получаю эту ошибку

46 - Table 'db_wtg.ct' doesn't exist 

Пожалуйста, помогите мне.

+1

Вы не можете ссылаться на набор результатов подзапроса из самого подзапроса. – vhu

+0

то как я могу это сделать? я понятия не имею ... просьба предложить –

+3

Вы можете либо реструктурировать данные, либо написать хранимую процедуру. У MySQL практически нет поддержки рекурсивных или иерархических запросов. –

ответ

1

Я собираюсь предположить, что вы используете MySQL. Если это так, имена таблиц MySQL чувствительны к регистру. Вы создаете свою временную таблицу как «CT» и пытаетесь выбрать из таблицы «Ct», которая не существует.

+0

Это не актуально причина проблемы ОП. Реальная причина заключается в том, что MySQL не поддерживает рекурсивные запросы. –

+0

Я пропустил рекурсивный запрос. Это тоже не полетит. –