Tengo las siguientes tablas:SQL: Selección de columnas basadas en el valor de la columna de otra tabla
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 |
+--------+------+------+------+
Mi cuestión en su forma más simple ¿no tiene nada que ver con la tabla Data
pero acabo de explicar que de todos modos para que pueda estar haciendo lo contrario.
¿Cómo seleccionaría los nombres de columna de UserPrivileges según el valor? Para que pueda usar el resultado en otra consulta para seleccionar solo esas columnas.
Algo a lo largo de estas líneas:
SELECT (COLUMNS_NAME_QUERY_FROM_UserPrivileges(UserID='#')) WHERE DataID = '#' FROM Data
O no me importa una mejor manera de administrar privilegios de usuario de columnas específicas.
El primero no es lo que estoy buscando, y el segundo. mi pregunta es ¿cómo escribirías 'FIELDS_NAME_QUERY()'? –
¿Como un procedimiento/función almacenada, o en algún lenguaje de programación? –
En SQL, ya sea como S.P o Func. –