需要帮助编写内部嵌套连接

时间:2013-12-12 16:49:52

标签: sql-server

概述:在TestDB数据库中编写一个返回JobOrder记录的SQL查询。

参与的表格:

由于您还不熟悉数据模式,因此我将详细介绍您将在查询中使用的表,即JobOrder,EntRequirement和Offer。

查询要求:

选中所有JobOrders(仅返回JobOrder表中的列)并确认 FromDateTime未来的优惠。确认要约的OfferStatusId为9。

*提示:与Offer的JobOrders没有直接关系。你会需要 利用三个表之间的关系:JobOrder,EntRequirement, 和提议。

Select * from JobOrder where FromDateTime > today
and offerStatusId =9
  • EntRequirement将JobOrderId作为外键
  • 商品具有EnterpriseRequirementId作为外键

这是我到目前为止所做的:

Select * from EntRequirement
inner join Offer
on EntRequirement.EntRequirementId = Offer.EnterpriseRequirementId 
and Offer.OfferStatusId = 9 
and Offer.FromDateTime > GETDATE ()

请帮忙解决这个问题。

1 个答案:

答案 0 :(得分:0)

我认为JobOrders表的PK是一个名为id

的列
select *
from JobOrders jo
where exists (
    select 1 from EntRequirement er
    join Offer o on er.EntRequirementId = o.EnterpriseRequirementId 
    where er.JobOrderId = jo.id
) 
 and jo.FromDateTime >  GETDATE ()
 and jo.offerStatusId =9