|
|
|
Помогите, пожалуйста, новичку SQL-запрос
|
|||
|---|---|---|---|
|
#18+
Привет. Помогите, пожалуйста, в написании запроса. Я изучаю SQL уже две недели. Над этим запросом неделю думал, не получается. Дано: есть таблица PCProg. В этой таблице есть два столбца: user_id - уникальный идентификатор пользователей компьютером. В столбце значения u1, u2, u3, ... и т.д. appl_id - идентификатор приложений (программ), которыми могут пользоваться пользователи. В столбце значения pr1, pr2, ... и т.д. Каждый пользователь имеет право пользоваться определенным набором (количеством) программ. Есть пользователи, которые имеют право пользоваться всеми программами. Любой пользователь имеет право пользоваться хотя бы одной программой. Условно выглядит так: u1: pr1, pr2, pr5, pr6 u2: pr2, pr7, pr9 u3: имеет право пользоваться всеми программами . . . u5: pr4 . . и т.д. Нужно написать запрос, который отобразит всех пользователей, которые имеют право пользоваться всеми программами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 17:02 |
|
||
|
Помогите, пожалуйста, новичку SQL-запрос
|
|||
|---|---|---|---|
|
#18+
SQL31_TНад этим запросом неделю думал, не получается. У этой задачи как минимум два решения: 1) отобразить пользователей, у которых нет запрещённых к применению программ 2) отобразить пользователей, у которых число разрешённых к применению программ совпадает с числом программ вообще. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 17:18 |
|
||
|
Помогите, пожалуйста, новичку SQL-запрос
|
|||
|---|---|---|---|
|
#18+
Спасибо, за быстрый ответ. Но я не понял предложенных решений. Что нужно найти в задаче я понимаю. Только не могу понять как это выразить через запрос. Все виды приложений можно найти с помощью: SELECT DISTINCT appl_id FROM PCProg Если бы вышеизложенный запрос можно было бы использовать, то задача была бы решена. Но использование ключевого слова IN здесь не подойдёт. Не подходит запрос вида: SELECT user_id FROM PCProg WHERE appl_id IN (SELECT DISTINCT appl_id FROM PCProg) Я уверен, что это типовая задача. Но пока не нашёл аналогичную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 17:42 |
|
||
|
Помогите, пожалуйста, новичку SQL-запрос
|
|||
|---|---|---|---|
|
#18+
SQL31_T, Попробуй так: Код: plsql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 18:02 |
|
||
|
Помогите, пожалуйста, новичку SQL-запрос
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо, Edgar. Твой запрос работает. Проверил с помощью LibreOffice Base. Сам я осваиваю SQL с помощью QT ODBC 6.1.9.56 ( Query Tool by George Poulose). C помощью Query Tool работаю с .mdb Access файлом. Но Microsoft Access не поддерживает использование аргумента DISTINCT в статистических функциях. Поэтому и твой запрос выдал ошибку. Погуглил, нашёл советы на http://stackoverflow.com. Пробовал модифицировать запрос под Microsoft Access. Не вышло. Решил время не терять и попробовать через LibreOffice Base. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 20:23 |
|
||
|
Помогите, пожалуйста, новичку SQL-запрос
|
|||
|---|---|---|---|
|
#18+
SQL31_TПривет. Помогите, пожалуйста, в написании запроса. Я изучаю SQL уже две недели. Над этим запросом неделю думал, не получается. Дано: есть таблица PCProg. В этой таблице есть два столбца: user_id - уникальный идентификатор пользователей компьютером. В столбце значения u1, u2, u3, ... и т.д. appl_id - идентификатор приложений (программ), которыми могут пользоваться пользователи. В столбце значения pr1, pr2, ... и т.д. Каждый пользователь имеет право пользоваться определенным набором (количеством) программ. Есть пользователи, которые имеют право пользоваться всеми программами. Любой пользователь имеет право пользоваться хотя бы одной программой. Условно выглядит так: u1: pr1, pr2, pr5, pr6 u2: pr2, pr7, pr9 u3: имеет право пользоваться всеми программами . . . u5: pr4 . . и т.д. Нужно написать запрос, который отобразит всех пользователей, которые имеют право пользоваться всеми программами. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Или так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 21:26 |
|
||
|
Помогите, пожалуйста, новичку SQL-запрос
|
|||
|---|---|---|---|
|
#18+
SQL31_TЯ уверен, что это типовая задача. Но пока не нашёл аналогичную. Это НЕ типовая задача. Более того, это дурацкая задача, потому что в нормальной БД у тебя должно быть три таблицы, а не одна. Пользователи, приложения, и разрешения пользователям пользоваться приложением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.02.2014, 21:27 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38563679&tid=1540975]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
172ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 506ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...