我对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
列下列出如果人员被指定为该产品的设计师。我已经包含了我的图表的截图...
我知道我没有将它们链接起来,因为到目前为止我尝试过的所有内容都无法实现。我只想说明我要做的事情。
任何帮助/指针都会非常感激,如果需要,我可以创建新表(例如,将Employee表中的单独作业函数放入单独的表中等)。
最终结果如下:
答案 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。
我希望这会有所帮助。