0
您好,我正在为采购订单制定这些订单可以由某个用户订购,然后由另一个用户接收。从多个表中检索记录问题
问题是当交货表中的用户ID值为空时查询返回没有记录。
UserID值为空,因为订单尚未交付。
查询
SELECT pu.FirstName as purchase_FirstName, pu.LastName as purchase_LastName,
du.FirstName as delivery_FirstName, du.LastName as delivery_LastName,
po.PurchaseOrderDate,
d.ExpectedDeliveryDate, d.ActualDeliveryDate
FROM dbo.PurchaseOrders po JOIN
dbo.Deliveries d
ON po.PurchaseOrderID = d.PurchaseOrderID JOIN
dbo.Users pu
ON po.UserID = pu.UserID JOIN
dbo.Users du
ON d.UserId = du.UserId;
模式
所以把一个条件WHERE用户ID不是NULL。或者如果你想包含它们,你可以在userid为空的地方进行。如果您仍然需要记录,您还必须将您的联接更改为左联接。 – JonH
'Deliveries'上的'left join'会诀窍吗? –