SQL查询行为

时间:2015-05-21 08:20:08

标签: mysql sql

我陷入困境,试图找出为什么查询a返回的不同于查询b的记录。两个查询看似相同,但是返回500和b 3500.

这是查询a:

SELECT DISTINCT ODE.OrderBillToID
FROM    APTIFY.dbo.vwVwOrderDetailsKGExtended  ODE
WHERE ProductID IN (2022, 1393)
AND LTRIM(RTRIM(ODE.OrderStatus)) <> 'Cancelled'
AND LTRIM(RTRIM(ODE.OrderType)) <> 'Cancellation'
AND LTRIM(RTRIM(ODE.cancellationStatus)) <> 'FULLY CANCELLED'
UNION
SELECT  DISTINCT ID
FROM    APTIFY.dbo.vwPersons WHERE City = 'A'
UNION 
SELECT  DISTINCT RecordID 
FROM    APTIFY.dbo.vwTopicCodeLinks WHERE TopicCodeID = 16 AND Value = 'Yes,     Please'

查询b:

SELECT
    APTIFY..vwPersons.ID
FROM 
    APTIFY..vwPersons 
WHERE    
    ( APTIFY..vwPersons.ID   IN  (  
              SELECT
                   vwMeetingRegistrants.ID
              FROM
                   APTIFY.dbo.vwMeetings   vwMeetings
                   INNER JOIN APTIFY.dbo.vwMeetingRegistrants   vwMeetingRegistrants   
                        ON vwMeetings.ID=vwMeetingRegistrants.ActualMeetingID              WHERE
                        vwMeetings.ProductID  = 2022
 ) 
OR
     APTIFY..vwPersons.ID   IN  (  
              SELECT
                   vwMeetingRegistrants.ID
              FROM
                   APTIFY.dbo.vwMeetings   vwMeetings
                   INNER JOIN APTIFY.dbo.vwMeetingRegistrants   vwMeetingRegistrants   
                        ON vwMeetings.ID=vwMeetingRegistrants.ActualMeetingID              WHERE
                        vwMeetings.ProductID  = 1393
 ) 
OR
     APTIFY..vwPersons.City = N'Albany' )
OR
((
     APTIFY..vwPersons.ID   IN  (  
              SELECT
                   RecordID
              FROM
                   APTIFY.dbo.vwTopicCodeLinks     vwTopicCodeLinks
              WHERE
                        vwTopicCodeLinks.TopicCodeID  = 16
 ) 
AND
     APTIFY..vwPersons.ID   IN  (  
              SELECT
                   RecordID
              FROM
                   APTIFY.dbo.vwTopicCodeLinks     vwTopicCodeLinks
              WHERE
                        vwTopicCodeLinks.Value  = N'Yes, Please'
 ) )
)
来自b查询的

vwMeetingsRegistrants生成与orderkgdetailsextended相同的记录。我看不出这些查询中的任何差异 - 这可能表明我对查询行为缺乏了解 非常感谢任何积分! :)

1 个答案:

答案 0 :(得分:0)

正如它出来的那样,错误结构化的查询是由于配置错误的应用程序Aptify造成的。