私は以下の表を持っている:SQL:別のテーブルから列の値に基づいて選択する列
UserPrivileges:
+--------+------+------+------+
| UserID | Col1 | Col2 | Col3 |
+--------+------+------+------+
| 1 | 0 | 1 | 1 |
| 2 | 0 | 0 | 1 |
| 3 | 1 | 0 | 0 |
| 4 | 1 | 1 | 0 |
+--------+------+------+------+
Data:
+--------+------+------+------+
| DataID | Col1 | Col2 | Col3 |
+--------+------+------+------+
| 1 | A | B | C |
| 2 | D | E | F |
| 3 | G | H | I |
| 4 | J | K | L |
+--------+------+------+------+
最も単純な形式での私の質問はData
テーブルを行うには何も持っていませんが、私はちょうどとにかくそれを説明私はそれを間違った方法でやっているかもしれません。
値に基づいてUserPrivilegesから列名を選択する方法はありますか。その結果、別のクエリで結果を使用してそれらの列のみを選択することができます。これらの線に沿って
何か:
SELECT (COLUMNS_NAME_QUERY_FROM_UserPrivileges(UserID='#')) WHERE DataID = '#' FROM Data
または私は特定の列のためのユーザー権限を管理するためのより良い方法を気にしません。
最初のものは私が探しているものではなく、2番目のものです。私の質問は 'FIELDS_NAME_QUERY()'をどのように書くのでしょうか? –
ストアドプロシージャ/ファンクション、または一部のプログラミング言語ですか? –
SQLでは、S.PまたはFuncのいずれかです。 –