Следующее приглашение, на которое я пытаюсь ответить:Почему мой запрос вложенных запросов не работает?
Напишите вложенный оператор, чтобы указать имя и фамилию тех сотрудников, которые выполняют ту же работу, что и Ларри Смит.
Ниже приводится таблица работника колонки:
СОТРУДНИК (Emp_Num, Emp_Lname, Emp_Fname, Emp_Initial, Emp_HireDate, Job_Code)
Ниже мой Вложенный запрос:
select emp_fname, emp_lname
from EMPLOYEE
where job_code =
(select job_code
from employee
where emp_fname = 'larry'
and emp_lname = 'smith');
Почему это не работает?
Что пошло не так? Есть ли сообщение об ошибке? – showdev
Ваш запрос выглядит хорошо для меня. Я бы предпочел написать запрос как соединение или с подзапросом «EXISTS», но это совершенно верно. Единственная проблема заключается в том, что в подзапросе возвращается более одной строки. В этом случае было бы не только мое предпочтение, но и действительно лучше переключиться на реальный 'JOIN'. Запросы, которые используют 'IN' с подзапросами, использующими' IN' с подзапросами, использующими 'IN', безумно трудно понять и модифицировать, и совершенно ненужны! Специалисты SQL-сценариев не записывают запросы таким образом. – ErikE
Спасибо за ваш комментарий, причина, по которой он не работал, потому что я удалил некоторые кортежи, в которых «Ларри Смит» был одним из них. Кроме того, мне сказали, что всегда можно выполнить вложенный запрос, а не соединение, потому что он использует меньше ресурсов. –