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

Posted

技术标签:

【中文标题】如何组合两个查询并将数据放入一行?【英文标题】: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 【参考方案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

【讨论】:

以上是关于如何组合两个查询并将数据放入一行?的主要内容,如果未能解决你的问题,请参考以下文章

C# 调用一个方法,内有一个参数,执行SQL查询语句,并将结果返回,该方法如何写?

流分析:源“子查询”只能用于使用“datediff”函数的时间谓词

BIRT将两个数据集中的字段报告/组合到一个动态文本框中

如何编写猫鼬查询来组合来自两个模型的数据?

如何在 SQL 中组合两个查询? (子查询)

如何在 s-s-rS 中组合多个结果集?