簡體   English   中英

根據sql中的行和列條件過濾行

[英]Filter Rows based on rows and column condition in sql

我需要從類似於行級安全性的表中過濾行。 我有另一個表格列出了某些用戶的訪問級別。 當應用條件基於多列的用戶級過濾器時。

第一個表如下,它列出了需要從第二個表訪問的用戶和對 TG 的訪問 -

在此處輸入圖片說明

所以 ID 1234 可以訪問所有 TG,即 A、B 和 C。4321 有兩個 TG,即 B 和 C

第二個表包含成員信息,其中每個成員都分配了一個 Reg 和 TG -

在此處輸入圖片說明

因此,當基於輸入的 ID 條件時,輸出應僅限於 TG 訪問和 Reg。

如果我們輸入 ID 為 1234,則輸出應如下所示 -

在此處輸入圖片說明

同樣,如果 ID 為 4321,則輸出應為 -

在此處輸入圖片說明

SELECT *
FROM table1 t1
JOIN table2 t2 ON t2.tg IN (t1.tg1, t1.tg2, t1.tg3)
              AND t1.reg = t2.reg
-- WHERE t1.it = 1234

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM