Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте уважаемые!
Прошу помощи в составлении вьюшки из восьми таблиц.
Состав таблиц (ни одна таблица не связанна друг с другом, чем либо):
cams_list – список камер + различные свойства и характеристики. Здесь они создаются (впоследствии заносятся в группы, на что имеется отдельный столбец cam_gr_id, где указывается ID группы камер). Из таблицы дёргается только ID камер (cam_id)
cams_users – список пользователей + различные свойства и характеристики. Здесь они создаются (впоследствии заносятся в группы, на что имеется отдельный столбец group_id, где указывается ID группы пользователей). Из таблицы дёргается только ID пользователей, логин и принадлежность к админу (user_id, user_login, is_admin)
cams_groups – список групп пользователей. Из таблицы берётся ID группы (group_id)
cams_list_groups – список групп камер. Из таблицы берётся ID группы и имя группы (cam_gr_id, cam_group_name)
cams_rules_groups – права групп пользователей на камеры по-отдельности. Из таблицы берётся статус права (crg.rule_status AS rule_status_group)
cams_rules - права пользователей на камеры по-отдельности. Из таблицы берётся статус права (cr.rule_status AS rule_status)
cams_list_rules_users - права пользователей на группы камер. Из таблицы берётся статус права (clru.rule_status AS rule_cam_status_user)
cams_list_rules_groups – права группы пользователей на группы камер. Из таблицы берётся статус права (clrg.rule_status AS rule_cam_status_group)
Условие таково, что все таблицы должны быть раздельные и только вьюшка собирает их в сводную таблицу. Окончательный смысл вьюшки в следующем: Есть ID пользователя или его имя или группа пользователей или группа камер и тп. При одном из этих условий (и указанных желаемых столбцов статусов) должны выбираться только те права, которые принадлежат данному пользователю или группе и тд. Ни чего лишнего и вторичного.
Ниже приведён код, который почти, но не совсем подходит под условия. Он прошёл уже около 15 стадий изменении и модификации, но нужного результата так и не достиг. Проблема явно в условиях склеивания и LEFT JOIN. Где то, что то я упускаю. Но уже не способен смотреть равнодушно и трезво на этот код. Я понимаю, что он не маленький и при взгляде на него слегка мутит, но может всё же у Вас найдётся сил выявить мою оплошность.
Все таблицы прилагаются во вложении, если кто хочет досконально изучить данную «аномалию»)
Отвечу на любые вопросы, если что не понятно.
Заранее благодарю всех кто откликнется
Неактивен