Коррелированные подзапросы MySQL: подзапрос не может найти таблицу из внешнего запроса? - PullRequest
0 голосов
/ 28 июля 2010

это было когда-то с тех пор, как я использовал связанные подзапросы, я не уверен, правильно ли я это делаю.в моем подзапросе 2-я последняя строка я пытаюсь получить node.id из внешней таблицы.когда я пытаюсь выполнить запрос, я получаю

Код ошибки: 1054 Неизвестный столбец 'node.id' в 'предложении where')

select node.id, node.title, depthLookup.depth
from posts node, (
    select count(parent.title) as depth
    from posts parent, posts children
    where children.lft > parent.lft 
    and children.rgt < parent.rgt
    and children.id = node.id
    order by parent.lft
) as depthLookup;

1 Ответ

2 голосов
/ 28 июля 2010

Кажется, вам просто нужно переместить выражение из предложения 'from' в список полей

select node.id, node.title, 
(
    select count(parent.title) as depth
    from posts parent, posts children
    where children.lft > parent.lft 
    and children.rgt < parent.rgt
    and children.id = node.id
    order by parent.lft
) as depthLookup
from posts node;

Или используйте таблицу с одним значением, например:

select node.id, node.title, depthLookup.depth
from posts node,
(
    select count(parent.title) as depth
    from posts parent, posts children
    where children.lft > parent.lft 
    and children.rgt < parent.rgt
    and children.id = node.id
    order by parent.lft
) as depthLookup;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...