У меня есть следующие таблицы:
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
Или я не возражаю против лучшего способа управления привилегиями пользователей для определенных столбцов.