SQL左联接返回错误的结果集

时间:2019-07-18 17:14:28

标签: mysql sql

我有以下三个表

事件-EventId,AccountId和其他一些列

MasterEvents-MasterEventid,EventId,AccountId
互动表-InteractionId,AccountId

现在,事件表的所有条目将在MasterEvents表中具有一个条目。交互表中的所有内容也将出现在masterevents表中。 但是,并非所有来自事件表的条目都会有一个进入交互表的条目。

我需要从事件表中获取所有记录以及它们各自的交互(如果存在), 我有以下查询。

SELECT e.eventid,
       e.occurred,
       e.eventtype,
       e.eventdata,
       e.eventinfo,
       e.summary,
       e.userid,
       i.interactionid,
       Row_number()
         OVER (
           ORDER BY occurred ASC ) AS rownum
FROM   events e
       INNER JOIN masterevents me
               ON me.eventid = e.eventid
       LEFT JOIN interactions i
              ON i.accountid = me.accountid
WHERE  me.accountid = @AccountId

此查询返回的事件结果甚至没有出现在交互表中,并且它是针对错误的交互ID而不是空的interactid。请帮助我,如何获得所需的结果集。

样本数据:

events

EventId, EventName
    875, 'abc'
    874, 'XYZ'

masterevents

MAsterEventId, EventId, AccountId
          759,     875,      1000
          758,     874,      1200

interactions

InteractionId, AccountId
          900,      1000

0 个答案:

没有答案