简单查询关系

时间:2014-01-29 23:48:57

标签: sql normalization

我需要查询以下ER图(这是不完整的,我想您的资历会帮助您更好地理解该关联)

我需要的查询是 - 在'tech'部门工作的所有员工工作电话号码(类型'W')的列表。

另外,如果PK和FK正确标准化,请告诉我。

<小时/> 注意:对于主键,我在列名旁边提到了 PK ,而对于使用 FK_(表名)的外键。

<小时/> 到目前为止我尝试了什么

select e.emp_id, e.lname from 
Employee e join contactInfo c on e.emp_id = c.emp_id 
join phones p on c.contid = p.cont_id 
join phonetype pt on pt.phoneType_id = p.phoneType_id 
join Department d on d.dept_id = e.dept_id
where dept_id = 'tech' and pt.phoneType_id = 'W'

谢谢。

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为问题出在您使用“dept_id”和“phoneType_id”的查询的最后一行。这些可能是整数值,而不是文本。这是我提出的修复方法:

select e.emp_id, e.lname from 
Employee e join contactInfo c on e.emp_id = c.emp_id 
join phones p on c.contid = p.cont_id 
join phonetype pt on pt.phoneType_id = p.phoneType_id 
join Department d on d.dept_id = e.dept_id
where d.type = 'tech' and pt.type = 'W'