首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从多个表检索记录问题

从多个表检索记录问题
EN

Stack Overflow用户
提问于 2016-07-15 15:10:41
回答 1查看 32关注 0票数 0

你好,我正在制定采购订单的模式,这些订单可以由特定用户订购,然后由其他用户接收。

问题是当传递表中的UserID值为空时,查询不返回任何记录。

UserID值为空,因为订单尚未交付。

查询

代码语言:javascript
运行
复制
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;

模式

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 15:14:04

很可能你需要左加入。稍微格式化一下,这就更容易阅读了。您可以看看本文,以了解不同类型的联接。http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

代码语言:javascript
运行
复制
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.Users pu ON po.UserID = pu.UserID 
left JOIN dbo.Deliveries d ON po.PurchaseOrderID = d.PurchaseOrderID 
left JOIN dbo.Users du ON d.UserId = du.UserId;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38399545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档