У меня есть схема, как на ниже:Восстановите записи через внутреннее соединение
CREATE TABLE rruser (
id NUMBER(32,0) NOT NULL,
name VARCHAR2(30) NOT NULL,
fullname VARCHAR2(100) NOT NULL,
active_flag CHAR(1) DEFAULT 'N' NOT NULL
)
CREATE TABLE rruser_group (
user_id NUMBER(32,0) NOT NULL,
group_id NUMBER(32,0) NOT NULL
)
CREATE TABLE rrgroup (
id NUMBER(32,0) NOT NULL,
name VARCHAR2(100) NOT NULL,
code VARCHAR2(20) NOT NULL
)
CREATE TABLE rrgroup_permission (
group_id NUMBER(32,0) NOT NULL,
permission_id NUMBER(32,0) NOT NULL
)
CREATE TABLE rrpermission (
id NUMBER(32,0) NOT NULL,
name VARCHAR2(100) NOT NULL,
description VARCHAR2(1000) NOT NULL
)
связность таким образом, что RRUSER связан с RRGROUP с помощью таблицы RRUSER_GROUP и RRGROUP дополнительно связан с RRPERMISSION через стол RRGROUP_PERMISSION.
Я должен узнать пользователей, значение активного флага которых равно «Y» в RRUSER; Я использую нижеследующий запрос
SELECT * FROM rruser WHERE ACTIVE_FLAG = 'Y'
Затем я должен узнать пользователей, у которых есть разрешение на запись; в последней таблице RRPERMISSION существует столбец NAME, у которого есть права на запись, где значение этого столбца равно 'write'
. Какой запрос я могу использовать для получения этой информации? Я знаю, что это должно быть достигнуто с помощью INNER JOIN.
Прямо сейчас, я попытался запрос для конкретного пользователя, чтобы узнать, есть ли у него разрешение на запись или нет, и обнаружили, что у него есть разрешение на запись, как это ...
SELECT count(ID) FROM rruser WHERE ACTIVE_FLAG = 'Y';
SELECT * FROM rruser WHERE ACTIVE_FLAG = 'Y' AND FULLNAME = 'sss'
SELECT * FROM rruser_group WHERE USER_ID = 1100
SELECT * FROM rrgroup WHERE ID = 113;
SELECT * FROM rrgroup_permission WHERE GROUP_ID = 189 ;
SELECT * FROM rrpermission WHERE ID = 990
Прежде всего, для соединения запроса обе таблицы должны иметь отношение. здесь в вашем случае идентификатор таблицы rruser должен быть вставлен в rrpermission. –
Dh, пожалуйста, предложите запрос, по которому я могу получить пользователей, у которых есть права на запись, я показал выше, что таблицы связаны друг с другом –
Я дал ответ на вопрос, попробуйте этот запрос. –