1
私はメニューテーブルを持っていますが、私は子なしですべての親メニューを選択するのに苦労しています。子なしの親に照会
SELECT
CASE
WHEN (SELECT COUNT(1) children
FROM menu
WHERE cod_idiom = 'EN'
START WITH cod_menu_parent = m1.cod_menu
CONNECT BY PRIOR cod_menu = cod_menu_parent) = 0 THEN
cod_menu
END x
FROM menu m1
WHERE m1.isSubMenu = 'T'
* isSubMenu = 'T'は、サブメニューまたはファイルである可能性のある子を持つ可能性があることを意味します。
まず、すべてのサブメニューを照会し、メニューコードを取得してから、子を数えるために前に接続することでした。
上記のクエリには期待された効果がありませんでした。あなたはどんな考えですか?
技術的には、isSubMenuは一般により正規化されたデータベースで悩まされている派生フィールドです。それを取り除くか、それを同期させる(かなりの仕事ではない)ことを余儀なくされるかもしれません。さらに、フィールド名は、関係の反対側に属しているように聞こえる(子フィールドではなく)。フィールドの使用法の説明が正しい場合は、名前を 'hasSubMenu'に変更することを検討してください。 –