我正在努力做到以下几点:
我有两张桌子:
表员工;列Employee_ID和Employee_Name。 Employee_ID是主键
表Emp_Salary; columns Employee_Salary,它是一个链接到employee_ID的外键。
我希望获得ID为40的员工的工资
所以例如
Select employee_salary from EMP_Salary where Employee_ID equals 40;
不幸的是,这不起作用;有什么理由吗?与外国>主键关系应该没问题?
我无法解决的另一个问题是:
Select employee_Salary from EMP_Salary where Employee_name equals "Dan"
任何见解都表示赞赏。谢谢!
答案 0 :(得分:1)
因为没有任何名为equals
的内容。你可以试试这个:
Select employee_salary from EMP_Salary where Employee_ID =40;
同样你可以试试这个:
Select employee_Salary from EMP_Salary where Employee_name ="Dan"
如果您想要合并两个查询并获得结果,您也可以考虑在MYSQL中查找JOINS。
这样的事情:
select EMPLOYEE_SALARY
from EMPLOYEE E1 inner join EMP_SALARY E2 on E2.EMPLOYEE_ID = E1.EMPLOYEE_ID
where E1.EMPLOYEE_ID = 40;
或
select EMPLOYEE_SALARY
from EMPLOYEE E1 inner join EMP_SALARY E2 on E2.EMPLOYEE_ID= E1.EMPLOYEE_ID
where E1.Employee_Name= 'Dan';
答案 1 :(得分:0)
使用=而不是等于:
Select employee_salary from EMP_Salary where Employee_ID = 40;
要按名称获取薪水,您将在Employee_ID上加入两个表,然后将Employee_name放在WHERE子句中:
Select e.employee_salary
FROM EMP_Salary es
INNER JOIN employee e ON e.Employee_ID = es.Employee_ID
WHERE e.Employee_name = 'Dan';
答案 2 :(得分:0)
您是否尝试过使用INNER JOIN
?
例如:
select EMPLOYEE_ID, EMPLOYEE_NAME, EMPLOYEE_SALARY
from EMPLOYEE A
inner join EMP_SALARY B
on B.ID_EMPLOYEE = A.ID_EMPLOYEE
where ID_EMPLOYEE = --numberhere