【发布时间】:2013-12-10 13:59:09
【问题描述】:
我有两张桌子。一个叫员工,另一个叫部门
这是两张表:
CREATE TABLE Departmenr (
department_code NCHAR(4),
department_name NVARCHAR(15),
city NVARCHAR(20),
budget MONEY
)
CREATE TABLE Employee (
employee_id NCHAR(6),
name NVARCHAR(20),
position NVARCHAR(20),
salary MONEY,
dcode NCHAR(3),
)
我必须为所有工资超过 20,000 英镑的员工写一份声明,列出每位员工的姓名和他们所在部门的名称。 这意味着我必须加入 Employee 和 Department 表才能获得输出。
我认为可能是这样的:
SELECT Emplyee.name, Department.department_name
FROM Employee
FULL OUTER JOIN Department
ON Employee.salary > 20000;
但它有错误。 我该怎么做?
【问题讨论】:
-
员工中的 dcode 是部门的外键吗?
-
您的联接似乎没有将两个表相互关联。您的联接需要将一个表中的列值与另一个表中的列值关联起来。
-
要加入两个以上的表,您需要在两个表中都有相互关联的字段,例如employee 表中的“department_code”字段,它是 departmentnr 表的外键。
-
如果
Employee.dcode与Department.department_code相关,那么 (a) 为什么它们不具有相同的名称?通过缩写一个而不是另一个,除了无缘无故的额外歧义之外,你能得到什么? (b) 为什么它们有不同的类型?
标签: mysql sql sql-server join