从多个表中检索记录

艾曼

您好,我正在制定采购订单的架构,这些订单可以由某些用户订购,然后由其他用户接收。

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

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

询问

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;

架构图

在此处输入图片说明

肖恩·兰格(Sean Lange)

您最有可能需要在此处加入LEFT JOIN。稍加格式化即可使很多内容更易于阅读。您可以看一下本文以了解不同类型的联接。http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

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;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用联接从多个表中检索记录

来自分类Dev

检索表中的多个<td>

来自分类Dev

从单个结果集中的多个数据库中检索相同名称表中的记录

来自分类Dev

从表中检索最新记录(Oracle SQLPlus)

来自分类Dev

从子查询返回的多个记录中检索记录

来自分类Dev

从phpmyadmin中的多个表中检索数据

来自分类Dev

从mysql中的多个表中检索值

来自分类Dev

根据记录关联表中存在的值检索记录

来自分类Dev

SQL查询问题:并非从mysql数据库中的多个表中检索到所有记录

来自分类Dev

SQL语句从多个表中检索信息

来自分类Dev

根据ID从多个表中检索数据

来自分类Dev

SQL Server从多个表中检索数据

来自分类Dev

如何基于Postgres中的日期从表中检索记录

来自分类Dev

在单个表中匹配多个记录

来自分类Dev

Rails在联接表中创建多个记录

来自分类Dev

如何从SQL表中删除多个记录

来自分类Dev

匹配访问中多个表的记录

来自分类Dev

从多个Access表中删除记录

来自分类Dev

数据表中的多个记录

来自分类Dev

Laravel在表中插入多个记录

来自分类Dev

如何从多个表中获取记录?

来自分类Dev

表中的多个记录中的一个记录

来自分类Dev

使用多个任务从大型集合中检索所有记录

来自分类Dev

从Rails中的has_many关系的多个级别检索记录

来自分类Dev

需要检索表A中的所有记录,而表B中的单个记录是最近更新的

来自分类Dev

检索联接表中没有匹配行的记录

来自分类Dev

如何根据 Hbase 表中的条件检索记录?

来自分类Dev

mySQL 查询仅检索左表中的记录

来自分类Dev

使用 MySQL JOINS 从两个表中检索记录