Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL脚本未加入结果_Sql - Fatal编程技术网

SQL脚本未加入结果

SQL脚本未加入结果,sql,Sql,我在让这个SQL脚本将两个表连接在一起时遇到了一个问题,我可以执行它,它将显示第一部分的结果(AccountID、AuditDate..等等),但它不会连接到内部select语句 我已经通过抽查来验证数据库中是否有匹配的数据 我搞砸了什么 Select AccountID, AuditDate, SourceVersion From Audit Left join ( Select A.PrinterAuditID, A.AuditID, A.SerialNr, A.PageCountT

我在让这个SQL脚本将两个表连接在一起时遇到了一个问题,我可以执行它,它将显示第一部分的结果(AccountID、AuditDate..等等),但它不会连接到内部select语句

我已经通过抽查来验证数据库中是否有匹配的数据

我搞砸了什么

Select AccountID, AuditDate, SourceVersion
From Audit
Left join (
    Select A.PrinterAuditID, A.AuditID, A.SerialNr, A.PageCountTotal,a.PageCountColor, A.PageCountMono
    from  InvalidPrinterAudit A
    where A.DeviceID = 90757
) InvalidPrinterAudit on InvalidPrinterAudit.AuditID = Audit.AuditID

您在外部查询中选择的列少于在内部查询中选择的列

如果希望在结果集中返回它们,请将它们包含在外部:

Select AccountID, AuditDate, SourceVersion, PrinterAuditID, SerialNr
From Audit
Left join (
    Select A.PrinterAuditID, A.AuditID, A.SerialNr, A.PageCountTotal,a.PageCountColor, A.PageCountMono
    from  InvalidPrinterAudit A
    where A.DeviceID = 90757
) InvalidPrinterAudit on InvalidPrinterAudit.AuditID = Audit.AuditID

您在外部查询中选择的列少于在内部查询中选择的列

如果希望在结果集中返回它们,请将它们包含在外部:

Select AccountID, AuditDate, SourceVersion, PrinterAuditID, SerialNr
From Audit
Left join (
    Select A.PrinterAuditID, A.AuditID, A.SerialNr, A.PageCountTotal,a.PageCountColor, A.PageCountMono
    from  InvalidPrinterAudit A
    where A.DeviceID = 90757
) InvalidPrinterAudit on InvalidPrinterAudit.AuditID = Audit.AuditID

这里发生了几件事

One:为了在结果集中包含字段,这些字段必须包含在查询的
选择部分中:

Select AccountID, AuditDate, SourceVersion, InvalidPrinterAudit.PrinterAuditID, InvalidPrinterAudit.AuditID, InvalidPrinterAudit.SerialNr, InvalidPrinterAudit.PageCountTotal,InvalidPrinterAudit.PageCountColor, InvalidPrinterAudit.PageCountMono
    From Audit
    Left join (
        Select A.PrinterAuditID, A.AuditID, A.SerialNr, A.PageCountTotal,a.PageCountColor, A.PageCountMono
        from  InvalidPrinterAudit A
        where A.DeviceID = 90757
    ) InvalidPrinterAudit on InvalidPrinterAudit.AuditID = Audit.AuditID
Two:这里不需要子查询。如果您需要从一个单独的表或其他地方聚合结果,子查询是很好的,但是在这里您可以使用左外部联接并完成它

Select AccountID, AuditDate, SourceVersion, InvalidPrinterAudit.PrinterAuditID, InvalidPrinterAudit.AuditID, InvalidPrinterAudit.SerialNr, InvalidPrinterAudit.PageCountTotal,InvalidPrinterAudit.PageCountColor, InvalidPrinterAudit.PageCountMono
    From Audit
    Left OUTER JOIN InvalidPrinterAudit 
        ON InvalidPrinterAudit.AuditID = Audit.AuditID 
           AND InvalidPrinterAudit.DeviceID = 90757

这将在应用联接之前,将
DeviceID=90757
过滤器应用到您的
InvalidPrinterAudit
,因此您仍将获得所有
Audit
记录,然后仅获得与该设备id匹配的
InvalidPrinterAudit
记录。

这里发生了一些事情

One:为了在结果集中包含字段,这些字段必须包含在查询的
选择部分中:

Select AccountID, AuditDate, SourceVersion, InvalidPrinterAudit.PrinterAuditID, InvalidPrinterAudit.AuditID, InvalidPrinterAudit.SerialNr, InvalidPrinterAudit.PageCountTotal,InvalidPrinterAudit.PageCountColor, InvalidPrinterAudit.PageCountMono
    From Audit
    Left join (
        Select A.PrinterAuditID, A.AuditID, A.SerialNr, A.PageCountTotal,a.PageCountColor, A.PageCountMono
        from  InvalidPrinterAudit A
        where A.DeviceID = 90757
    ) InvalidPrinterAudit on InvalidPrinterAudit.AuditID = Audit.AuditID
Two:这里不需要子查询。如果您需要从一个单独的表或其他地方聚合结果,子查询是很好的,但是在这里您可以使用左外部联接并完成它

Select AccountID, AuditDate, SourceVersion, InvalidPrinterAudit.PrinterAuditID, InvalidPrinterAudit.AuditID, InvalidPrinterAudit.SerialNr, InvalidPrinterAudit.PageCountTotal,InvalidPrinterAudit.PageCountColor, InvalidPrinterAudit.PageCountMono
    From Audit
    Left OUTER JOIN InvalidPrinterAudit 
        ON InvalidPrinterAudit.AuditID = Audit.AuditID 
           AND InvalidPrinterAudit.DeviceID = 90757

这将在应用联接之前将
DeviceID=90757
过滤器应用于您的
InvalidPrinterAudit
,因此您仍将获得所有
Audit
记录,然后仅获得与该设备ID匹配的
InvalidPrinterAudit
记录。

尝试此操作,选择Audit.AccountID,Audit.AuditDate,Audit.SourceVersion、A.PrinterAuditID、A.AuditID、A.SerialNr、A.PageCountTotal、A.PageCountColor、A.PageCountMono从Audit作为Audit离开将InvalidPrinterAudit作为on连接(A.InvalidPrinterAudit=Audit.AuditID),其中A.DeviceID=90757内部查询是否返回任何内容?应该没关系。是的,内部选择将返回数据,谢谢RAM!!!你让它工作了,我不得不修改一个列名,但现在它工作了这是最后一个对我有效的代码谢谢@Ram Select Audit.AccountID,Audit.AuditDate,Audit.SourceVersion,a.PrinterAuditID,a.AuditID,a.SerialNr,a.PageCountTotal,a.PageCountColor,a.PageCountMono从Audit作为Audit左加入InvalidPrinterAudit作为打开(A.AuditID=Audit.AuditID)如果A.DeviceID=90757尝试此操作,请选择Audit.AccountID、Audit.AuditDate、Audit.SourceVersion、A.PrinterAuditID、A.AuditID、A.SerialNr、A.PageCountTotal、A.PageCountColor、A.PageCountMono作为审核左键将InvalidPrinterAudit作为打开(A.InvalidPrinterAudit=Audit.audited)其中A.DeviceID=90757内部查询是否返回任何内容?应该无关紧要。是的,内部选择将返回数据,谢谢你RAM!!!你让它工作了,我必须修改一个列名,但它现在工作了这是对我有效的最后代码谢谢你@RAM Select Audit.AccountID,Audit.AuditDate,Audit.SourceVersion,A.PrinterAuditID,A.AuditID、A.SerialNr、A.PageCountTotal、A.PageCountColor、A.PageCountMono作为审核从审核到左加入InvalidPrinterAudit作为开启(A.Audited=Audit.Audited)如果A.DeviceID=90757不起作用,那么上面评论中发布的Ram起作用了现在你提到它,问题是为什么在子选择上左键连接。这不起作用,上面评论中发布的Ram起作用了现在你提到它,问题是为什么在子选择上左键连接。