Персона таблицы:
ID, ИМЯ, ВОЗРАСТ, ОПИСАНИЕ, СТАТУС
Значения:
1, Casey, 18, A fresh grad, Probation
2, Wedy, 25, Middle career, Approve
3, Stacy, 33, A working professional, Confirmed
4, Steve, 45, Senior Management, Confirmed
5, Goat, 55, Retire, Rejected
Разрешение таблицы:
PermID, TYPE, VALUE
Значения:
1, normaluser, can view training 1 and 2
1, probationuser, can view training 3 part 1
2, normaluser, can view training 1 and 2
2, traininguser, can view training 3
2, extradinoaryuser, Wendy can view full training
3, extradinoaryuser, Stacy can view full training
3, superuser, Stacy also can edit full training
3, supertrainer, can create full training
Пытается достичь:
- Отобразить полные данные таблицы Person с помощью «status» = Утверждено или «status» = Подтверждено
Вывод - отобразить идентификатор строки Person 2,3,4
Если сопоставить идентификатор человека с PermID разрешения, получить 'type' = extradinoaryuser или 'type' = superuser, игнорировать тип остальных, объединить с данными таблицы Person.
Тип вывода - добавить разрешение ''и' значение 'ID строки персонажа 2,3
Если запись имеет тип superuser и extradinoaryuser, продублируйте запись
Выходные данные - Строка 3 идентификатора человека дублируется как superuser, так и extradinoaryuser
Желаемые результаты:
2, Wedy, 25, Middle career, Approve, extradinoaryuser, Wendy can view full training<br/>
3, Stacy, 33, A working professional, Confirmed, extradinoaryuser, Stacy can view full training<br/>
3, Stacy, 33, A working professional, Confirmed, superuser, Stacy also can edit full training<br/>
4, Steve, 45, Senior Management, Confirmed
Команды Sql (не работает):
select Person.id, Person.name, Person.age, Person.description, Person.status
from Person
inner join Permission ON Person.id = Permission.PermID
where Person.status like “Approve”
or Person.status like “Confirmed”
AND (permission.name = 'superuser' or permission.name = ‘extradinoaryuser’);