Делал давно (точнее пытался делать) такого рода утилитку. Работала долго (по правой кнопке в дереве прав) и выводила в формочку список пар группа-домен, в которых разрешен данный элемент. Работало только для Security Key (говорю ж - не доделал
). Зато работало правильно "по ядру" - т.е. путем последовательного перебора всех комбинаций сочетаний групп-доменов.
Ваш вариант увы - справедлив только для пунктов меню, уровень доступа к которым отличается от уровня доступа к ключу доступа к которому привязан пункт меню.
В случае таблицы и ключа доступа - нужно анализировать поле id и parentid.
Но самая большая проблема состоит в анализе тех элементов, у которых уровень доступа совпадает с уровнем доступа родительского ключа доступа. Ибо этих записей в таблице нет (могут случайно остаться - но в целом - записей не должно быть)