Mysql SQL查询行为

Mysql SQL查询行为,mysql,sql,Mysql,Sql,我陷入了试图弄明白为什么查询a返回的记录与查询b不同的困境。两个查询的目的似乎相同,但a返回500,b返回3500 这是一个查询: SELECT DISTINCT ODE.OrderBillToID FROM APTIFY.dbo.vwVwOrderDetailsKGExtended ODE WHERE ProductID IN (2022, 1393) AND LTRIM(RTRIM(ODE.OrderStatus)) <> 'Cancelled' AND LTRIM(RT

我陷入了试图弄明白为什么查询a返回的记录与查询b不同的困境。两个查询的目的似乎相同,但a返回500,b返回3500

这是一个查询:

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查询中的VWMeetingsRegistrant正在生成与查询中呈现的OrderKgDetails相同的记录。我看不出这些查询有什么不同,这可能表明我对查询行为缺乏了解。

非常感谢大家的支持!:)

事实证明,结构不正确的查询是应用程序Aptify配置不当的结果

第一个查询检查了
'Cancelled'
'Cancellation'
'FULLY Cancelled'
,而第二个查询没有检查,它检查的是
City='A'
而不是
City=N'Albany'
,我想还有更多的区别。你查过了吗?谢谢彼得给我回电话!是的,你是对的!然而,城市“奥尔巴尼”和城市“A”与“取消”取消相同,完全取消与查询B中使用的会议注册人视图记录相同。经过大量尝试和错误后,我认为这与查询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'
 ) )
)