与联接相关的SQL查询

时间:2019-01-11 04:51:34

标签: sql join

有三个表-

employee (emp_id, emp_name)
department (emp_id, emp_dept)
salary (emp_id, emp_sal)

我必须找出每个部门的最高工资。
在输出中需要以下列-

emp_id, emp_name, emp_sal, emp_dept

注意-
emp_id是主键。
在输出中,emp_sal应该是部门的最高工资。

3 个答案:

答案 0 :(得分:-1)

我在下面的查询中放入了示例数据。我已经在SQL Server中对此进行了测试

  [ 
   {
    "id": "7249328f-fad4-4548-87b0-947e99b57892",
     "displayName": "Car Rent",
    "duration": "1020.00:00:00",   <===============
   },
   {
    "id": "7e39f9302-77b3-4c52-a858-adb67651ce86",
     "displayName": "Taxi Rent",
    "duration": "0510.00:00:00",   <===============
   }
  ]

答案 1 :(得分:-1)

始终首先尝试使用简单查询来获取一些数据,然后根据需要从该查询中逐个过滤数据,这样您便有了一个清晰的主意。也请尝试以下查询。

SELECT emp_id, emp_name, emp_dept, max(emp_sal) from (SELECT emp_id, emp_name, emp_dept, emp_sal from salary inner join department on salary.emp_id = department.emp_id inner join employee on salary.emp_id = employee.emp_id ) group by emp_dept

另请参阅此链接。 SELECT rows with MAX(Column value), DISTINCT by another column

答案 2 :(得分:-2)

尝试以下查询:

   select max(emp_salary), emp_dept  from department d join salary s on d.emp_id = s.emp_id group by emp_dept