【问题标题】:How do I combine two queries and get data into one row?如何组合两个查询并将数据放入一行?
【发布时间】:2016-01-16 00:56:52
【问题描述】:

我这里有一种情况,需要从两个不同的表中获取数据(即 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作为job表的外键引用employee表中的employeeid。

【问题讨论】:

  • select fname,lname from tblJob J INNER JOIN tblEmp E on J.deliverymanid = E.employeeid

标签: mysql sql sql-server oracle select


【解决方案1】:

您可以在employee 表上加入job 表两次 - 一次用于拣货员,一次用于送货员:

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

【讨论】:

    猜你喜欢
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多