MYSQL 加入,然后对加入的 table 进行查询
MYSQL joins and then making queries on the joined table
我正在尝试对数据库和后续查询进行连接,在这个数据库中,这是一个来自 MYSQL 的虚拟数据库,你会发现这些 tables
+----------------------+
| Tables_in_employees |
+----------------------+
| current_dept_emp |
| departments |
| dept_emp |
| dept_emp_latest_date |
| dept_manager |
| employees |
| salaries |
| titles |
+----------------------
在工资中 table 我有这样的东西
| emp_no | salary | from_date | to_date |
+--------+--------+------------+------------+
| 10001 | 60117 | 1986-06-26 | 1987-06-26 |
| 10001 | 62102 | 1987-06-26 | 1988-06-25 |
| 10001 | 66074 | 1988-06-25 | 1989-06-25 |
| 10001 | 66596 | 1989-06-25 | 1990-06-25 |
| 10001 | 66961 | 1990-06-25 | 1991-06-25 |
所以我尝试对薪水求和并按员工编号对结果进行分组,因此每个数字只有一个值,因此该行可用于与员工的连接 table 所以我可以这样做使用已连接 table 的查询,但我无法进行连接,我正在尝试执行以下操作:
SELECT salary, salaries.emp_no FROM salaries INNER JOIN employees ON salaries.emp_no = employees.emp_no -----> This ONE JUST THROWS THE FIREST TWO COLUMNS FROM SALARIES
SELECT emp_no, SUM(salary) as total_pay FROM salaries GROUP BY emp_no INNER JOIN employees ON employees.emp_no = salaries.emp_no; ------> THIS ONE TELLS ME I HAQVE A SYNTAX ERROR
我可以聊天来解决这个任务吗?谢谢
假设您只想要员工的总工资,您甚至不需要 employees
table:
SELECT s.emp_no, SUM(s.salary) as total_pay
FROM salaries s
GROUP BY s.emp_no ;
我希望您在某个特定日期需要它:
SELECT s.emp_no, SUM(s.salary) as total_pay
FROM salaries s
WHERE start_date <= '1990-01-01' and
end_date > '1990-01-01'
GROUP BY s.emp_no ;
我正在尝试对数据库和后续查询进行连接,在这个数据库中,这是一个来自 MYSQL 的虚拟数据库,你会发现这些 tables
+----------------------+
| Tables_in_employees |
+----------------------+
| current_dept_emp |
| departments |
| dept_emp |
| dept_emp_latest_date |
| dept_manager |
| employees |
| salaries |
| titles |
+----------------------
在工资中 table 我有这样的东西
| emp_no | salary | from_date | to_date |
+--------+--------+------------+------------+
| 10001 | 60117 | 1986-06-26 | 1987-06-26 |
| 10001 | 62102 | 1987-06-26 | 1988-06-25 |
| 10001 | 66074 | 1988-06-25 | 1989-06-25 |
| 10001 | 66596 | 1989-06-25 | 1990-06-25 |
| 10001 | 66961 | 1990-06-25 | 1991-06-25 |
所以我尝试对薪水求和并按员工编号对结果进行分组,因此每个数字只有一个值,因此该行可用于与员工的连接 table 所以我可以这样做使用已连接 table 的查询,但我无法进行连接,我正在尝试执行以下操作:
SELECT salary, salaries.emp_no FROM salaries INNER JOIN employees ON salaries.emp_no = employees.emp_no -----> This ONE JUST THROWS THE FIREST TWO COLUMNS FROM SALARIES
SELECT emp_no, SUM(salary) as total_pay FROM salaries GROUP BY emp_no INNER JOIN employees ON employees.emp_no = salaries.emp_no; ------> THIS ONE TELLS ME I HAQVE A SYNTAX ERROR
我可以聊天来解决这个任务吗?谢谢
假设您只想要员工的总工资,您甚至不需要 employees
table:
SELECT s.emp_no, SUM(s.salary) as total_pay
FROM salaries s
GROUP BY s.emp_no ;
我希望您在某个特定日期需要它:
SELECT s.emp_no, SUM(s.salary) as total_pay
FROM salaries s
WHERE start_date <= '1990-01-01' and
end_date > '1990-01-01'
GROUP BY s.emp_no ;