Mysql 如何通过外键编写SQL查询
我正在努力做到以下几点: 我有两张桌子: 表格员工;列Employee_ID和Employee_Name。员工ID是主键 表Emp_工资;列Employee_Salary,它是链接到Employee_ID的外键 我想为一个ID为40的员工拿到薪水 比如说Mysql 如何通过外键编写SQL查询,mysql,sql,database,oracle,Mysql,Sql,Database,Oracle,我正在努力做到以下几点: 我有两张桌子: 表格员工;列Employee_ID和Employee_Name。员工ID是主键 表Emp_工资;列Employee_Salary,它是链接到Employee_ID的外键 我想为一个ID为40的员工拿到薪水 比如说 Select employee_salary from EMP_Salary where Employee_ID equals 40; 不幸的是,这不起作用;有什么原因吗?使用“外键>主键”关系,这应该可以吗 我无法上班的另一个问题是: S
Select employee_salary from EMP_Salary where Employee_ID equals 40;
不幸的是,这不起作用;有什么原因吗?使用“外键>主键”关系,这应该可以吗
我无法上班的另一个问题是:
Select employee_Salary from EMP_Salary where Employee_name equals "Dan"
任何见解都值得赞赏。谢谢 因为没有所谓的
等于。你可以试试这个:
Select employee_salary from EMP_Salary where Employee_ID =40;
Select employee_Salary from EMP_Salary where Employee_name ="Dan"
同样,您可以尝试以下方法:
Select employee_salary from EMP_Salary where Employee_ID =40;
Select employee_Salary from EMP_Salary where Employee_name ="Dan"
你也可以考虑在MySQL中查找,如果你想把这两个查询结合起来,得到结果。
大概是这样的:
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 EMP_Salary where Employee_ID = 40;
要按姓名获取工资,您需要连接Employee_ID上的两个表,然后将Employee_名称放入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';
您是否尝试过使用内部联接
例如:
选择员工ID、员工姓名、员工工资
来自雇员A
内部连接EMP_工资B
在B.ID_EMPLOYEE=A.ID_EMPLOYEE上
其中ID_EMPLOYEE=--numberthere
您需要了解如何定义表。“Dan”
引用的是列名,而不是字符串值。根据SQL标准,字符串常量必须用单引号括起来。所以它应该是'Dan'
。