在my database中,我有一个表格薪水,用于存储员工的所有过去或当前薪水以及存储员工的表格员工。从嵌套选择中选择一些东西
我想选择升职了所有员工:
select first_name, last_name
from salaries
join employees on employees.emp_no = salaries.emp_no
where salaries.from_date > employees.hire_date
and salary >
(select salary from salaries
where salaries.emp_no = employees.emp_no and from_date = employees.hire_date)
group by salaries.emp_no
limit 10 ;
它返回:
+------------+-----------+
| first_name | last_name |
+------------+-----------+
| Georgi | Facello |
| Chirstian | Koblick |
| Kyoichi | Maliniak |
| Tzvetan | Zielinski |
| Sumant | Peac |
| Mary | Sluis |
| Patricio | Bridgland |
| Eberhardt | Terkki |
| Cristinel | Bouloucos |
| Kazuhide | Peha |
+------------+-----------+
10 rows in set (10.05 sec)
现在我试图在同一时间选择他们时,有工资,他们已被雇用(因为它已经在嵌套选择中被选中)。
有没有什么办法从select salary from salaries where salaries.emp_no = employees.emp_no and from_date = employees.hire_date
取数据?
我已经试过类似...
select first_name, last_name, first_salary.salary
from salaries join employees on employees.emp_no = salaries.emp_no
where salaries.from_date > employees.hire_date and salary >
(select salary from salaries where salaries.emp_no = employees.emp_no and from_date = employees.hire_date)
AS FIRST_SALARY
group by salaries.emp_no
limit 10 ;
...但它克利不起作用
(我们本来做一个UNION,因为查询已经是很长)。
感谢。我想到了它,但它可以选择工资下降的人。这就是为什么我们也应该检查日期(employees.hire_date,salaries.from_date,salaries.to_date) –
我明白你的观点。检查编辑并让我知道你在想什么 – kbball
我不明白为什么,但MySQL返回一个语法错误:'你的SQL语法有错误;检查与你的MySQL服务器版本相对应的手册,在'开始[...]'附近使用正确的语法 –