ログインに認証が必要なOracle apexレジストリデータベースがあります。これは正常に機能します。ユーザーの認証に使用されるテーブルは「tuser」と呼ばれ、このテーブルにはユーザー名、パスワード、部門があります
3つの例は次のとおりです
username password department
x 123 home
y 123 home
z 123 work
私の問題は、クエリで :appuser を使用しているため、各ユーザーがログインすると、それぞれの注文が表示されますが、ユーザーに部門に関連する注文も表示する必要があります。
XとYには、それぞれの注文だけでなく「自宅」の注文も表示し、 Zには、彼が別の部門からの注文であることを確認して、彼の注文のみを表示したいと考えています。
互いにリンクされている 3 つのテーブルがあります。
table 1- Registry Table 2- Outgoing table 3-Tuser
filenuber filenumber username
filename department department
requestedby
これらは重要なフィールドです。
select OUTGOING.FILENUMBER as FILENUMBER,
REGISTRY.FILENAME as FILENAME,
OUTGOING.DEPARTMENT as DEPARTMENT,
from REGISTRY REGISTRY,
OUTGOING OUTGOING,
TUSER TUSER
where REGISTRY.FILENUMBER(+) =OUTGOING.FILENUMBER
and OUTGOING.DEPARTMENT(+) =TUSER.department
and outgoing.requestby (+) = TUSER.username
これは私が試したものですが、すべてのユーザーにデータが表示されます。私が追加する場合
select OUTGOING.FILENUMBER as FILENUMBER,
REGISTRY.FILENAME as FILENAME,
OUTGOING.DEPARTMENT as DEPARTMENT,
from REGISTRY REGISTRY,
OUTGOING OUTGOING,
TUSER TUSER
where REGISTRY.FILENUMBER(+) =OUTGOING.FILENUMBER
and OUTGOING.DEPARTMENT(+) =TUSER.department
and outgoing.requestby (+) = TUSER.username
AND outgoing.Department =:APP_USER
これは、 xが要求を行い、yが同じ部門に属しているにもかかわらず、xだけが彼の要求を表示するわけではないことを意味します。
私が取得したいのは、Xが要求を行ったときに、 Yがその要求をしなかったとしても、Yがそれを見る必要があるということです。これは、Yが同じ部門に属しているためです。