MySQL:在多个子查询中使用“In”?

2024-02-26

我正在尝试使用这个查询:



SELECT COUNT(PF.PageID) AS Total,P.PageID
FROM Pages P
LEFT JOIN Pages_Filters PF ON PF.PageID=P.PageID
WHERE P.PageID IN (
    (SELECT PageID
       FROM Pages_Filters
       WHERE FilterID="1"
       AND FilterOptionID="2"
    ),
    (SELECT PageID
       FROM Pages_Filters
       WHERE FilterID="7"
       AND FilterOptionID="57"
    )
)
AND P.PageID !="283"
GROUP BY PF.PageID
  

这会产生错误:

Sub-query returns more than 1 row

我希望 MySQL 合并所有子查询的结果,并使用公共值作为主查询中的 IN 子句。

因此,如果第一个子查询返回 1,2,4,第二个子查询返回 2,3,4,则“in”子句将显示为:

WHERE P.PageID IN (2,4)

因为 2 和 4 是两个子查询共有的值。

通过一个查询可以实现这一点吗?

UPDATE:

我将尝试更好地澄清这个问题。

结果应返回将指定过滤器设置为特定值的所有页面,包括设置了不属于查询的额外过滤器的页面。换句话说,我所在的页面已设置了某些过滤器,向我显示我可以从这里转到的所有页面,这些页面具有相同的过滤器,并且具有一个附加的过滤器集。

解释起来有点棘手,但我正在寻找一个结果集,其中包含具有其他过滤器集的页面,但不包含具有相同过滤器 ID 的不同值的页面。

因此,在示例中,我们希望所有将过滤器 1 设置为值 2,并且将过滤器 7 设置为 57 的页面。我们还希望分配了其他过滤器(除了 1 和 7 之外)的页面,但不将过滤器 7 设置为值的页面57 以外的值,以及将过滤器 1 设置为 2 以外的值的 NOT 页面。

使用样本数据更新

页面_过滤器:



PageID  FilterID    FilterOptionID
297        2           5
297        7           57
297        9           141
305        2           5
101        2           5
101        7           57
  

Pages:



PageID   PageName
297        Some Page
305        Another Page
101        A Stupid Page
  

在这种情况下,我应该能够问,“哪些页面将过滤器 2 设置为 5,将过滤器 7 设置为 57,并将过滤器 9 设置为 141”?

答案应该是“只有297”。


您应该能够“合并”结果集并集联合/全部联合 http://dev.mysql.com/doc/refman/5.0/en/union.html

就像是

SELECT COUNT(PF.PageID) AS Total,P.PageID
FROM Pages P
LEFT JOIN Pages_Filters PF ON PF.PageID=P.PageID
WHERE P.PageID IN (
    SELECT PageID
       FROM Pages_Filters
       WHERE FilterID="1"
       AND FilterOptionID="2"
    UNION ALL
    SELECT PageID
       FROM Pages_Filters
       WHERE FilterID="7"
       AND FilterOptionID="57"
)
AND P.PageID !="283"
GROUP BY PF.PageID
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL:在多个子查询中使用“In”? 的相关文章

随机推荐

  • html 元素的 ID 是否始终可以从 window 对象获得? [复制]

    这个问题在这里已经有答案了 我注意到以下几点 div div
  • 404 错误 - Google 尝试对 ColdFusion CFC 建立索引

    几个月来 我们的 IIS ColdFusion 服务器在 Google 爬虫扫描期间一直抛出 404 错误 通常情况下很容易追踪这些文件 但在这种情况下 Google 正在尝试扫描我们的 CFC 文件 这些文件确实存在 但它们不会暴露在 I
  • 使用 xargs 将 stdin 分配给变量

    我真正想做的就是确保管道中的所有内容都成功并将最后一个标准输入分配给变量 考虑以下简化的场景 x exit 1 cat 当我跑步时declare a 我看到这个 declare a PIPESTATUS 0 0 我需要一些方法来注意到exi
  • SQL Server 和 C# 主/详细信息插入

    我正在创建将从我的 C 应用程序调用的存储过程 并将主 详细信息输入 SQL Server 在标题表上我有TransactionId作为身份列 以便我每次插入时都会获得唯一的 ID 当我调用详细信息表的存储过程时 我想使用标头中的 PK I
  • 实现 std::iter_difference_t

    我正在实现我自己的范围版本 因为它们尚未包含在标准库中 我陷入了实施困境std iter difference t The 最新草案 http eel is c draft incrementable traits 2 says 方式ite
  • 在不使用 imp.load_dynamic 的情况下将 DLL 导入 Python 3

    Goal 我正在尝试添加 Windows 支持Total Phase Aardvark 的 Python 接口 https github com kontron python aardvark目前仅限 Linux 这是一个设备的包装器 其可
  • 如何从不同的程序读取另一个窗口

    我尝试过findwindow and process但它不起作用 我怎样才能找到特定的按钮 例如我有按钮类AfxWnd90u和instance 21 我想检查这个按钮是否可见 我用这段代码尝试过 但找不到按钮 我想我在这个例子上犯了一个错误
  • 为什么贪心算法找不到图的最大独立集?

    给定图 G 为什么遵循贪心算法不能保证找到最大独立集 http en wikipedia org wiki Independent set 28graph theory 29 of G Greedy G S While G is not e
  • 在 Linux 中以编程方式设置自定义文件夹/目录图标

    在 Linux 中 可以为桌面 文件管理器中显示的文件夹 目录设置自定义图标吗 例如 对于Windows资源管理器 可以在文件夹的desktop ini文件中设置自定义图标吗 如果是这样 是否有通用的机制或 API 函数来执行此操作 这在发
  • 无需安装即可使用/导入 Beautiful Soup 4

    正如美丽汤文档所说 如果一切都失败了 Beautiful Soup 的许可证允许您将整个库与您的应用程序打包在一起 您可以下载 tarball 将其 bs4 目录复制到应用程序的代码库中 然后使用 Beautiful Soup 而无需安装它
  • 传递对象的成员函数时绑定“this”

    我定义了一个 类 并且只创建了它的一个实例 该实例拥有一个最终会被传递的成员函数 它是一个鼠标处理程序 但这并不重要 由于我只会创建 类 的一个实例 因此我决定使用对象文字将其重写为单例 所以我有 var mySingleton theOb
  • 在没有朋友的情况下在 C++ 中测试私有类成员[重复]

    这个问题在这里已经有答案了 今天和同事讨论了课堂上要不要测试私有成员或者私有状态 他几乎说服了我为什么这是有道理的 这个问题的目的并不是重复 StackOverflow 已经存在的有关测试私有成员的性质和原因的问题 例如 让单元测试成为它正
  • 如何在sequelize中构建EXISTS子句

    我有一个模型 其中有 3 个实体 User Project Contributor 一个项目有一个所有者 即用户 和多个贡献者 即用户 在我的仪表板中 我想列出用户的项目 即用户是所有者或贡献者的所有项目 使用查找拥有的项目Project
  • Scala 组合器解析器,>> 是什么意思?

    我对 scala 中的 gt gt 有点困惑 丹尼尔说在Scala 解析器组合器解析 xml https stackoverflow com questions 5271010 scala parser combinators parsin
  • 使用适用于 IOS 应用程序的 Phonegap FB 插件获取 facebook 用户电子邮件和用户名字/姓氏

    正在开发我的第一个 PhoneGap iOS 应用程序 尝试合并这个插件https github com Wizcorp phonegap facebook plugin tree master platforms ios www http
  • JSP中从数组输出字符串

    我想做一个测验 我想在提交表单后输出一系列问题 我知道要使用豆子 但我该怎么做呢 Thanks Use the JSTL http java sun com products jsp jstl 1 1 docs tlddocs
  • Jquery Ajax Post 中的 CORS 问题

    我正在从 jquery 执行 ajax post 这样我将调用属于不同域的两个休息服务来执行我的业务逻辑 在执行此操作时 我遇到了 CORS 问题 并且通过 google 引用 我向我的 ajax 添加了 crossDomain true
  • 如何复制 numpy 数组中的行或列?

    有了这个numpy array 0 1 2 3 4 5 6 7 8 例如 我如何复制第 1 行 以便得到以下内容 0 1 2 3 4 5 3 4 5 6 7 8 方法 1 一种方法是np insert https docs scipy or
  • R 确定图像宽度和高度(以像素为单位)

    假设我的磁盘上有一个图像 image jpg 如何使用 R 确定图像宽度 以像素为单位 您可以使用jpeg包裹 代码应该非常不言自明 require jpeg img lt readJPEG myimage jpg dim img 1 70
  • MySQL:在多个子查询中使用“In”?

    我正在尝试使用这个查询 SELECT COUNT PF PageID AS Total P PageID FROM Pages P LEFT JOIN Pages Filters PF ON PF PageID P PageID WHERE