首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将OR条件添加到内部选择中,使用mongo驱动程序减少结果数

如何将OR条件添加到内部选择中,使用mongo驱动程序减少结果数
EN

Stack Overflow用户
提问于 2016-03-30 21:42:43
回答 1查看 29关注 0票数 0

如果通过mongo驱动程序运行以下查询,则使用现有数据集获得3个结果

代码语言:javascript
运行
复制
SELECT a1.ACTIVITY,
       a1.START_TIME,
       a1.END_TIME,
FROM ACTIVITIES a1
INNER JOIN (SELECT MAX(ai._ID) 
            AS maxid 
            FROM ACTIVITIES ai
            WHERE ai.activity = 'writing'
            GROUP BY ai.ACTIVITY_CONTAINER_ID) a2 ON (a2.maxid = a1._ID)
LEFT JOIN PROJECT_TASKS pt ON a1.ACTIVITY_CONTAINER_ID = pt._ID
LEFT JOIN USERS u ON a1.ACTOR_ID = u._ID
LEFT JOIN PROJECTS p ON pt.PROJECT_ID = p._ID

如果然后将OR ai.activity = 'editing'添加到内部选择中,则只得到1个结果。如何将此或条件添加到内部选择中,减少结果的数量

代码语言:javascript
运行
复制
SELECT a1.ACTIVITY,
       a1.START_TIME,
       a1.END_TIME,
FROM ACTIVITIES a1
INNER JOIN (SELECT MAX(ai._ID) 
            AS maxid 
            FROM ACTIVITIES ai
            WHERE ai.activity = 'writing'
            OR ai.activity = 'editing' 
            GROUP BY ai.ACTIVITY_CONTAINER_ID) a2 ON (a2.maxid = a1._ID)
LEFT JOIN PROJECT_TASKS pt ON a1.ACTIVITY_CONTAINER_ID = pt._ID
LEFT JOIN USERS u ON a1.ACTOR_ID = u._ID
LEFT JOIN PROJECTS p ON pt.PROJECT_ID = p._ID
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-20 06:08:10

最后,我使用了类似于下面的查询,从我收集到的内容来看,它做同样的事情,但速度更慢。我怀疑我看到的错误是由于一个mongo驱动程序的奇怪行为,我传递的查询将它们转换为mongo查询语言。我更新了这个问题,使它更有用。

代码语言:javascript
运行
复制
SELECT
  a1.ACTIVITY,
  a1.START_TIME,
  a1.END_TIME,
FROM ACTIVITIES a1
INNER JOIN (
SELECT MAX(ai._ID) as maxid
                  FROM ACTIVITIES ai
                  WHERE ai.ACTIVITY = 'writing'
                  GROUP BY ai.ACTIVITY_CONTAINER_ID
UNION ALL
SELECT MAX(ai._ID) as maxid
                  FROM ACTIVITIES ai
                  WHERE ai.ACTIVITY = 'editing'
                  GROUP BY ai.ACTIVITY_CONTAINER_ID) as a2
ON (a2.maxid = a1._ID)
LEFT JOIN PROJECT_TASKS pt
  ON a1.ACTIVITY_CONTAINER_ID = pt._ID
LEFT JOIN USERS u
  ON a1.ACTOR_ID = u._ID
LEFT JOIN PROJECTS p
  ON pt.PROJECT_ID = p._ID 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36320271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档