Запрос возвращает неверный результат, ожидается одна строка, но получит ВСЕ

0

В моем заявлении ниже приведены все результаты таблицы, а не только соответствующие n1. Я приложил скриншот к результату. То, что я ожидаю, это только первая строка. Может кто-нибудь помочь мне понять, что здесь происходит, пожалуйста? Результат прилагаемого запроса

Create View Proj_Display AS
select * from Proj_d
Where "n" in (Select Student from proj_d);
  • 0
    У нас недостаточно информации.
  • 0
    Извинения, это "n1" выше, а не "n"
Показать ещё 5 комментариев
Теги:

1 ответ

2
Лучший ответ
Create View Proj_Display AS
select * from Proj_d
Where "n1" in (Select Student from proj_d);

Этот запрос теперь проверяет, существует ли значение "n1" в таблице proj_d. Это всегда верно. Поэтому, я думаю, вы хотите что-то вроде этого:

Create View Proj_Display AS
select * from Proj_d
Where Student  in (Select Student from proj_d WHERE Student = 'n1');

Но вы можете сделать это сразу, не используя подзапрос:

Create View Proj_Display AS
select * from Proj_d
Where Student  = 'n1'

Но, вероятно, вам нужно дать больше информации, что вы хотите точно

  • 0
    Почему это было бы мнение? Почему не просто запрос?
  • 0
    Спасибо за ответы до сих пор. Я пытаюсь понять разницу между EXISTS и IN, до сих пор я неправильно понимал, что IN просто вернет одну строку, а EXISTS вернет true. Я создал этот сценарий, чтобы отточить свое понимание того, что если ученик входит в систему, он видит только свою строку, и я собирался его развивать, чтобы, если учитель вошел в систему, мог видеть всю таблицу. Так что я думал о добавлении - ....... ИЛИ СУЩЕСТВУЕТ (Выберите * из учителя, где учитель = 't1'. @HLGEM @ Йохан

Ещё вопросы

Сообщество Overcoder
Наверх
Меню