SQL Проблемы: Код ошибки: 1242. Подзапрос возвращает более 1 строки - PullRequest
0 голосов
/ 23 марта 2020

ЦЕЛЬ

Я просто хочу выбрать данные тех сотрудников, зарплата которых выше, чем HCL (компания-сотрудник).

Tables

Что я пробовал:

SELECT Emp.emp_id, Emp.Emp_name, Department.dept_name, Emp.Salary, Company.company_name from emp 
 JOIN department ON(emp.emp_id=department.emp_id) 
  JOIN company ON(department.dept_id=company.dept_id) 
   where emp.salary > (SELECT Emp.Salary FROM emp where Company.company_name='HCL');

Проблема:

Когда я выполняю это запрос показывает: Код ошибки: 1242. Подзапрос возвращает более 1 строки:

Чтобы удалить вышеуказанную ошибку, я попытался:

SELECT Emp.emp_id, Emp.Emp_name, Department.dept_name, Emp.Salary, Company.company_name from emp 
     JOIN department ON(emp.emp_id=department.emp_id) 
      JOIN company ON(department.dept_id=company.dept_id) 
       where emp.salary > (SELECT Emp.Salary FROM emp where Company.company_name='HCL' LIMIT 1);

Я знаю, что, предоставляя LIMIT для запроса, он не дает желаемого результата, но удаляет подзапрос, возвращает более 1 ошибки строки, и когда я выполняю этот запрос, он предоставляет пустые строки и столбец на выходе.

Так что любой может помочь мне, где и чего мне не хватает в запросе, чтобы выбрать нужные детали ..

Ответы [ 2 ]

1 голос
/ 23 марта 2020

company.company_name выглядит неправильно, но некоторые базы данных поддерживают вложенные структуры записей в строках. Я предполагаю, что ваша база данных делает.

Я бы предложил, чтобы вы хотели одно из следующего:

1 голос
/ 23 марта 2020

Я думаю, что вы хотите:

select 
    e.emp_id, 
    e.emp_name, 
    d.dept_name, 
    e.salary, 
    c.company_name 
from emp e
inner join department d on e.emp_id = d.emp_id
inner join company c on d.dept_id = c.dept_id
where e.salary > (
    select max(e1.salary)
    from emp e1 
    inner join company c1 on c1.dept_id = e1.dept_id
    where c1.company_name = 'HCL'
);

Это даст вам сотрудников, у которых зарплата больше, чем у всех зарплат компании HCL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...