SQLでいない子供たちとすべての親を削除する方法?
-
20-09-2019 - |
質問
私は、ID、名前、レベル(深さ)とparrent_idを持つテーブルを持っている子のないすべてのノードを削除する任意の良い方法はありますか? (一方のレベルで十分ですか)?
):彼らは子供を持っている場合削除しない場合は、与えられたレベルチェックのすべてのノードをロードするが、これはおそらく、SQLで、より効果的であることwhouldと私はSQLの第一人者ないよ - 私は、アプリケーションでそれを行うことができます知っています解決
あなたが試みることができる。
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)
他のヒント
SELECT * FROM mytable where id in (SELECT parent_id from mytable)
このジョブを行う必要があります。
所属していません StackOverflow