У меня есть следующие таблицы: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
Или я не возражаю лучший способ для управления пользовательскими привилегиями для определенных столбцов.
Первый - это не то, что я ищу, а второй. мой вопрос в том, как вы напишете 'FIELDS_NAME_QUERY()'? –
Как хранимая процедура/функция или на каком-то языке программирования? –
В SQL, либо как S.P или Func. –