Я использую следующий запрос:однорядные подзапрос вопрос
select P.job_ref, P.emp_num, P.name,
P.job_title , P.job_type,
P.dept_ref, P.dept, J.mgr_rept,
(select P.name as manager_name
from PEOPLE P, JOB J
where J.mgr_rept=P.job_ref)
from PEOPLE P, JOB J
where P.job_ref=J.job_ref
Проблема заключается имена менеджера и сотрудника находятся в одной и той же таблицы под именем. job_ref коррелирует с mgr_rept в таблице заданий. Сотрудники job_ref равнялись бы значению в таблице заданий, которое вытягивало бы информацию о работе. Имя менеджера, однако, лежит в таблице людей. Значением mgr_rept будет номер job_ref менеджеров. Использование этого запроса возвращает более одной строки, поэтому я ищу какую-то помощь, пожалуйста.
Спасибо
Это смущает. job_ref является основным ключом работы таблицы, правильно? Это не такой тип работы, как «покупатель», а определенная позиция, такая как «покупатель 05 в отделе A02». У менеджера также есть работа (например, «менеджер отдела A02»). Таким образом, запись для покупателя 05 содержит mgr_ref для записи, содержащей менеджера. У каждого человека есть работа, поэтому people.job_ref также не является нулевым и уникальным. Существует отношение 1: 1 между людьми. Job_ref и job.job_ref; у вас есть только две таблицы для разделения позиций работы от текущего владельца задания. Это правильно? Если нет, сообщите нам основные ключи и отношения. –