在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服務器版本相對應的手冊,在'開始[...]'附近使用正確的語法 –