Не получаете ошибок, но нет данных для следующего запроса? - PullRequest
0 голосов
/ 09 декабря 2018

Вопрос: перечислите сведения о сотрудниках для сотрудников, которые работают в том же кинотеатре, что и сотрудник Джо Блоггс, у которого empno 77.

SELECT *
FROM Employee
WHERE Cinema_no IN (SELECT Cinema_no 
                    FROM Employee
                    WHERE Forename = 'Joe'
                      AND Surname = 'Bloggs')
  AND Empno <> 77;

Нет сообщений об ошибках, но он не возвращает сотрудников, которыеработать в том же кино, что и Джо Блоггс?

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018
Select * 
from employee 
where cinema_no in (select cimema_no 
                    from employees 
                    where emp_no = 77)
  and emp_no <> 77;

Ваш запрос был в порядке, пока вы не указали это имя / фамилию, если хотите, вот ниже

SELECT *
FROM Employee
WHERE Cinema_no IN (SELECT Cinema_no 
                    FROM Employee
                    WHERE UPPER(FORENAME) = UPPER('Joe')
                      AND UPPER(SURNAME) = UPPER('Bloggs'))
  AND empno <> 77
0 голосов
/ 09 декабря 2018

Ваш запрос выглядит вполне нормально.Я бы порекомендовал использовать empno вместо surname / forname для идентификации сотрудника.

SELECT *
FROM Employee
WHERE 
    Cinema_no IN (SELECT Cinema_no FROM Employee WHERE empno = 77)
    AND empno <> 77;

Другим решением было бы использование объединения

SELECT emp.*
FROM Employee emp
JOIN ( SELECT Cinema_no FROM Employee WHERE empno = 77) cin on emp.cinema_no = cin.cinema_no
WHERE emp.empno <> 77;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...