假设有两个表:
表零件:
Location PartNum Descrip
-------- ------- --------
Whse1 abc Frobbitz
Whse2 abc Frobbitz
Whse3 def Widget
Whse3 def Widget
表状态:
Location PartNum Status
--------- ------- --------------
*Default* abc Ready To Ship
*Default* def Ready To Ship
Whse1 abc Backordered
在大多数情况下,应使用默认状态。
要获取状态,查询可能如下所示:
SELECT p.Location,p.PartNum,p.Descrip,s.Status FROM Parts p
LEFT JOIN Status s ON s.PartNum=p.PartNum AND
s.Location = (SELECT MAX(Location) FROM Status s1
WHERE s1.PartNum=p.PartNum AND s1.Location
IN('*Default*',p.Location))
问题是,这是最有效(或至少相当有效)的方式吗?我的实际应用程序将在一个查询中加入多达 7 个表。