ID、名前、レベル (深さ)、および parrent_id を持つテーブルがあります。子を持たないすべてのノードを削除する良い方法はありますか? (1 つのレベルで十分です)? 私はアプリケーションでそれを行うことができることを知っています-特定のレベルのすべてのノードをロードし、削除しない場合は子があるかどうかを確認しますが、これはおそらくSQLでより効果的であり、私はSQLの第一人者ではありません:)
2 に答える
3
あなたは試すことができます
SELECT DISTINCT tParent.*
FROM Table tParent LEFT JOIN
Table tChild ON tParent.ID = tChild.ParentID
WHERE tChild.ID IS NOT NULL
試してみるとさらに良いでしょう
SELECT *
FROM Table t
WHERE NOT EXISTS(SELECT 1 FROM Table WHERE ParentID = t.ID)
于 2010-02-12T08:17:36.020 に答える
2
SELECT * FROM mytable where id in (SELECT parent_id from mytable)
これは仕事をするはずです
于 2010-02-12T08:14:12.373 に答える