У меня есть три таблицы для пользователей и права доступа пользователей, как показано ниже:
create table users (id int, login varchar, organization varchar);
create table groups (id int, name varchar);
create table user_groups (gid int, uid int,
constraint fk_users_groups foreign key(gid) references groups(id),
constraint fk_users_users foreign key(uid) references users(id)
);
Позволяет вставить несколько записей:
insert into groups values(1, 'Data Entry'), (2, 'Sender'), (3, 'Receiver'),
(4, 'Reviewer'), (5, 'Checker'), (6, 'Approver'), (7, 'Nothing'), (8,
'Everything'), (9, 'HR Systems'), (10, 'Check System'), (11, 'Final');
insert into users (1, 'Ahmad'), (2, 'Sam'), (3, 'John'), (4, 'Smith'),
(5, 'Roy');
insert into user_groups values (1, 1), (2, 1), (3, 1), (8, 1), (9, 1), (4, 2),
(5, 2), (10, 2), (11, 2), (6, 3), (7, 4);
Теперь я хочу получить идентификатор пользователя, логин и тип пользователя как таковой, если пользователь, имеющий («ввод данных», «отправитель», «получатель») группы, должен вывести «HR» (нам все равно для других групп, если он есть или нет, например: здесь у него есть и другие группы, а не те, которые нам нужны для типа пользователя «HR») для него как типа пользователя, если он / она входит в («рецензент», «проверка» "), затем следует печатать" Check ", иначе для любых других групп следует печатать" Any ".
Желаемый вывод:
User ID Login UserType
1 Ahmad HR
2 Sam Check
3 John Any
4 Smith Any