如何组合两个查询并将数据放入一行?

时间:2015-10-17 08:40:17

标签: mysql sql sql-server oracle select

我有一种情况来从两个不同的表中获取数据(即fname和lname),比较他们的jobid,deliverymanid,pickupmanid和employeeid来自job和employee表,并将它组合成一行。

这是工作表

jobid  pickupmanid  deliverymanid
-----  -----------  -------------
  1         1            2
  2         2            2

这是员工表

employeeid     fname         lname
----------  -----------  -------------
    1           ABC          XYZ
    2           LMN          OPR

这里的pickupmanid和deliverymanid作为工作表的外键,引用员工表中的employeeid。

1 个答案:

答案 0 :(得分:4)

您可以将job表加入employee表两次 - 一次用于选择器 - 一次用于送货员:

SELECT j.jobid, 
       p.fname AS pickup_fname, p.lname AS pickup_lname,
       d.fname AS delivery_fname, d.lname AS delivry_lname
FROM   job j
JOIN   employee p ON p.employeeid = j.pickupmanid
JOIN   employee d ON d.employeeid = j.deliverymanid