如何将多个员工添加到产品中

时间:2018-01-31 01:22:32

标签: sql foreign-keys primary-key relationship

我对SQL非常新,并且在这里和那里知道一些事情。

我对此感到困惑了几天,但却无法找到答案。我想要做的是将多个人分配给一个项目,使他们的名字根据他们的工作分配出现。

例如: 我有一个叫Products的表,在那张表中我有:

Model_ID -> This is set to Primary Key 
Model_Name,
PM,
Designer

我有另一个名为Employee的表,在该表中我有:

Employee_ID -> This is set to Primary Key 
First_Name,
Last_Name,
email,
Job_Title

在Job_Title下,对于每个员工,我都会在公司中担任PM,Designer,AE,Server PM等职位。

我要做的是在Products表格PM列下列出相应的员工姓名,如果将人员指定为PM,则在Designer列下列出如果人员被指定为该产品的设计师。我已经包含了我的图表的截图...

我知道我没有将它们链接起来,因为到目前为止我尝试过的所有内容都无法实现。我只想说明我要做的事情。

enter image description here

任何帮助/指针都会非常感激,如果需要,我可以创建新表(例如,将Employee表中的单独作业函数放入单独的表中等)。

最终结果如下:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,以下应该可以解决问题:

Select p.Product_ID, p.Model_Name, e1.First_Name as PM, e2.First_Name as Designer
    from Product p
    left join Employee e1 on e1.Employee_ID = p.PM
    left join Employee e2 on e2.Employee_ID = p.Designer 

如果您想使用全名,那么:

Select p.Product_ID, p.Model_Name, e1.First_Name + ' ' + e1.Last_Name as PM, e2.First_Name + ' ' + e2.Last_Name as Dessigner
    from ...

我使用了Left Joins,以防每个产品都分配了PM和Designer。您应该在项目表上有两个外键关系,一个用于PM,一个用于Designer,两者都将使用Employee表的Employee_ID作为键。

设计视图

如果您想在设计视图中执行此操作,我认为您需要添加Employee表的第二个副本和'链接' PM字段在一个Employee表中为Employee_ID,而Designer字段在另一个中为Employee_ID。

我希望这会有所帮助。