下面我有两个查询,我想把它们的输出组合起来。
select distinct [User].UserID, fname, lname, JobTitle
from [User]
join [Order] on [User].UserID = [Order].UserID
<表类>UserID 帧 lname 职务高低 tbody><<tr>1 约翰道明> 工程师 2特里 能源部 工程师 表类>
如果您似乎只是需要用户信息,那么如何将其加入?
select U.UserID, U.fname, U.lname, U.JobTitle,
(
select avg(case when ReturnTypeID = 5 then 1.0 else 0 end) as DefectedRate
from RentalItems R
where R.OrderID = o.OrderID
) as DefectedReturnRate
from [Order] O
inner join [User] U on U.UserID = O.UserID
where O.OrderID in (select OrderID from RentalItems where ReturnTypeID = 5);
请注意,为了清晰起见,使用了漂亮的短表别名。
作为题外话,如果你发现自己需要连接两个查询在一起,你做的和表连接完全一样,例如
select *
from (
{sub-query 1)
)
inner join (
{sub-query 2)
) on {some condition}
进一步获取有订单的用户列表,exists
子句比连接更清晰,例如
select UserID, fname, lname, JobTitle
from [User] U
where exists (select 1 from [Order] O where U.UserID = O.UserID)