tôi có các bảng sau:SQL: Chọn các cột dựa trên giá trị cột từ bảng khác
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 |
+--------+------+------+------+
Câu hỏi của tôi ở dạng đơn giản nhất không có bất cứ điều gì để làm với bảng Data
nhưng tôi chỉ giải thích nó anyways để tôi có thể làm điều đó một cách sai lầm.
Làm cách nào để chọn tên cột từ UserPrivileges dựa trên giá trị? Để tôi có thể sử dụng kết quả trong truy vấn khác để chỉ chọn những cột đó.
cái gì đó dọc những dòng này:
SELECT (COLUMNS_NAME_QUERY_FROM_UserPrivileges(UserID='#')) WHERE DataID = '#' FROM Data
Hoặc Tôi không quan tâm một cách tốt hơn để quản lý quyền ưu đãi người dùng cho các cột cụ thể.
Người đầu tiên không phải là những gì tôi đang tìm kiếm, và thứ hai. câu hỏi của tôi là bạn sẽ viết 'FIELDS_NAME_QUERY()' như thế nào? –
Là thủ tục/chức năng được lưu trữ, hoặc bằng một số ngôn ngữ lập trình? –
Trong SQL, hoặc là S.P hoặc Func. –