Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29

Игнорируется отрицание в запросе

20.06.2015, 17:13. Показов 3880. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Столкнулся со странной проблемой. Имеется задание:
Напишите запрос с exists, выбирающий сведения обо всех студентах, для которых в том же городе, где живет студент, существуют университеты, в которых он не учится.
Решаю следующим образом:

SQL
1
2
3
4
5
6
7
SELECT *
FROM STUDENT
WHERE EXISTS (
    SELECT *
    FROM UNIVERSITY
    WHERE UNIVERSITY.CITY = STUDENT.CITY AND UNIVERSITY.[[UNIV _ID] <> STUDENT.UNIV_ID
)
Результат неправильный. Ощущение будто бы второе условие игнорируется просто напросто. Если вместо <> поставить = - все работает, но задачу-то так не решить. Что я делаю не так?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.06.2015, 17:13
Ответы с готовыми решениями:

В запросе к БД игнорируется LIKE
Это файл search.php JS-скриптом ему передается методом POST то, что пользователь вбил в поисковую форму. Оператор LIKE полностью...

Отрицание xy это значит умножение х на у или отрицание х + отрицание у
отрицание xy это значит умножение х на у или отрицание х + отрицание у,в таблице истинности незнаю как делать

игнорируется gets
В цикле gets выполняется 1 раз и в дальнейшем gets игнорируется for (i = 0; i &lt;= 4; i++) { cout &lt;&lt; endl &lt;&lt;...

10
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
20.06.2015, 17:27
"Выбрать студента, для которого существует университет, в котором не существует этого студента"
Переведите на английский - будет запрос, не правда ли?
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
20.06.2015, 17:33  [ТС]
Цитата Сообщение от iap Посмотреть сообщение
Переведите на английский - будет запрос
А я не это разве сделал?

WHERE UNIVERSITY.CITY = STUDENT.CITY AND UNIVERSITY.[[UNIV _ID] <> STUDENT.UNIV_ID
В таблице STUDENT есть столбцы STUDENT_ID, SURNAME, NAME, STIPEND, KURS, CITY, BIRTHDAY, UNIV_ID
В таблице UNIVERSITY есть столбцы [UNIV _ID, UNIV_NAME, RATING, CITy
Если совпадает город ВУЗа и город студента и не совпадают ID вуза и ID вуза в котором учится студент, значит он учится в другом вузе в другом городе.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
20.06.2015, 17:41
Лучший ответ Сообщение было отмечено Metall_Version как решение

Решение

Цитата Сообщение от niks255 Посмотреть сообщение
А я не это разве сделал?
Как будет по-английски "не существует"?
А вы что написали?
Выбрать студента, для которого есть университет, в котором учится и кто-нибудь другой?
Разве не все реальные университеты такие, ибо в них редко учится только 1 человек?
1
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
20.06.2015, 19:05  [ТС]
Цитата Сообщение от iap Посмотреть сообщение
Выбрать студента, для которого есть университет, в котором учится и кто-нибудь другой?
Ничего не понял. ВУЗ есть в городе студента, а студент учится в другом ВУЗе и в другом городе. Разве неправильно?
Не работает само условие. То есть: UNIVERSITY.[[UNIV _ID] <> STUDENT.UNIV_ID просто отбрасывается по какой-то причине, хотя и связано с первым условием с помощью AND, что логично подразумевает выполнение обоих условий для выбора. Как бы вы реализовали?

Добавлено через 1 час 11 минут
Разобрался с задачей. В примере все правильно, просто в базе данных было две очень похожие записи. Пример полностью рабочий, вопрос решен.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
22.06.2015, 10:02
Цитата Сообщение от niks255 Посмотреть сообщение
В примере все правильно, просто в базе данных было две очень похожие записи. Пример полностью рабочий, вопрос решен.
То есть, были нужны студенты,
для которых есть хотя бы один университет в их городе,
в котором учится кто-то, отличный от них самих?
Но ведь все университеты такие. Они безусловно существуют!
Например, в университете, где учится студент, существует запись, для которой UNIVERSITY.[[UNIV _ID] <> STUDENT.UNIV_ID
Ваш EXISTS() практически всегда возвращает ИСТИНУ!
Исключение составляет университет, в котором учится только один студент!
0
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
22.06.2015, 13:51  [ТС]
Цитата Сообщение от iap Посмотреть сообщение
То есть, были нужны студенты,
для которых есть хотя бы один университет в их городе,
в котором учится кто-то, отличный от них самих?
Но ведь все университеты такие. Они безусловно существуют!
Например, в университете, где учится студент, существует запись, для которой UNIVERSITY.[[UNIV _ID] <> STUDENT.UNIV_ID
Ваш EXISTS() практически всегда возвращает ИСТИНУ!
Исключение составляет университет, в котором учится только один студент!
Должны соблюдаться оба условия:

SQL
1
UNIVERSITY.CITY = STUDENT.CITY AND UNIVERSITY.[[UNIV _ID] <> STUDENT.UNIV_ID
Если одно из них ложь - функция возвращает ложь. А истина она будет только если в городе, в котором живет студент, есть университет, в котором он не учится. Что и соответствует заданию.

Напишите запрос с exists, выбирающий сведения обо всех студентах, для которых в том же городе, где живет студент, существуют университеты, в которых он не учится.
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
22.06.2015, 14:46
Цитата Сообщение от niks255 Посмотреть сообщение
Должны соблюдаться оба условия:

SQL
1
UNIVERSITY.CITY = STUDENT.CITY AND UNIVERSITY.[[UNIV _ID] <> STUDENT.UNIV_ID
Если одно из них ложь - функция возвращает ложь. А истина она будет только если в городе, в котором живет студент, есть университет, в котором он не учится. Что и соответствует заданию.
Только вот "не учится" - это NOT EXISTS(), а не <>
Нужен ещё один вложенный подзапрос NOT EXISTS().
Я уже замучался намекать.
На неравенство надо проверять не одного студента университета, а всех! Разве не очевидно?
0
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
22.06.2015, 14:50  [ТС]
Цитата Сообщение от iap Посмотреть сообщение
На неравенство надо проверять не одного студента университета, а всех! Разве не очевидно?
Он и так каждого проверяет, только сразу два условия используется.
Если ID универа не совпадает с ID универа в котором учится студент - значит он в этом универе не учится, если города совпадают - значит ВУЗ в том же городе где и студент. Все, истинно. Зачем городить что-то ещё?
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
22.06.2015, 17:00
Цитата Сообщение от niks255 Посмотреть сообщение
Он и так каждого проверяет, только сразу два условия используется.
Если ID универа не совпадает с ID универа в котором учится студент - значит он в этом универе не учится, если города совпадают - значит ВУЗ в том же городе где и студент. Все, истинно. Зачем городить что-то ещё?
Прошу прощения. Почему-то всё время воспринмал UNIV_ID как ID студента.
0
1 / 1 / 0
Регистрация: 21.05.2013
Сообщений: 29
22.06.2015, 17:02  [ТС]
Цитата Сообщение от iap Посмотреть сообщение
Прошу прощения. Почему-то всё время воспринмал UNIV_ID как ID студента
Ну я сразу понял что вы где-то ошиблись.
В любом случае, вопрос решён.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.06.2015, 17:02
Помогаю со студенческими работами здесь

Игнорируется Where
Я составил запрос, однако при просмотре в Sublime Text я сразу заметил что WHERE окрашивается в желтый, не характерный для него цвет. ...

Игнорируется if
Всем привет ! с формы передаются с текстовых полей $var-ы и с чекбоксов $age-ы, потом изо всех $var-ов формируется массив $array_of_answ, а...

Отрицание
Всем привет! Есть задание сделать регулярное выражение, которое будет из строки подобной этой aaa{{aaa{dd}aa}}bbbbbb{{ccccc}}ccccc...

Игнорируется RegisterHotKey()
Не понять почему, но все же факт. ЗЫ:Компилятор ошибок не выдает! bool noclip(HWND hwnd) { if(RegisterHotKey(NULL, 1,...

Меню игнорируется
Почему игнорируется меню,оно собственно не работает,без него все работет,но не могу понять почему с ним не хочет? Если в майне...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru