0

相関サブクエリを使用してからしばらく経ちましたが、これが正しいかどうかはわかりません。サブクエリの最後の 2 行目でnode.id、外部テーブルから取得しようとしています。クエリを実行しようとすると、

エラー コード: 1054 'where 句' の列 'node.id' が不明です)

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;
4

1 に答える 1

2

式を「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;
于 2010-07-28T05:40:02.703 に答える