sql - 如何相交 2 个子查询
问题描述
您好,我想将 2 个长查询彼此相交,但我发现您只能与简单查询相交。这有可能得到这样的东西吗?
`SELECT id, name as antibodyName FROM Antibodies WHERE
id IN
((SELECT id FROM Antibodies WHERE name LIKE ?
UNION all
SELECT antiId FROM AssignedColors WHERE name LIKE ?
UNION all
SELECT antiId FROM AssignedReactivities WHERE name LIKE ?)
INTERSECT
(SELECT id FROM Antibodies WHERE name LIKE ?
UNION all
SELECT antiId FROM AssignedColors WHERE name LIKE ?
UNION all
SELECT antiId FROM AssignedReactivities WHERE name LIKE ?)
)
AND dateOfCreation >= ? AND dateOfCreation <= ?
ORDER BY dateOfCreation DESC LIMIT ? OFFSET ?;`
实际上,我想获得其他查询联合的相交。
解决方案
您必须SELECT
为每组联合查询使用一个语句:
SELECT id, name as antibodyName
FROM Antibodies
WHERE id IN (
SELECT id FROM
(
SELECT id FROM Antibodies WHERE name LIKE ?
UNION all
SELECT antiId FROM AssignedColors WHERE name LIKE ?
UNION all
SELECT antiId FROM AssignedReactivities WHERE name LIKE ?
)
INTERSECT
SELECT id FROM
(
SELECT id FROM Antibodies WHERE name LIKE ?
UNION all
SELECT antiId FROM AssignedColors WHERE name LIKE ?
UNION all
SELECT antiId FROM AssignedReactivities WHERE name LIKE ?
)
) AND dateOfCreation >= ? AND dateOfCreation <= ?
ORDER BY dateOfCreation DESC LIMIT ? OFFSET?;
推荐阅读
- python-3.x - 计算 Scipy 曲线拟合中拟合参数的误差
- c# - 无法验证发布者启动 C#
- java - 如何从我的列表中查找其链接的实体集合至少包含一个元素的所有实体?
- node.js - 为什么名称权限不起作用?
- python-3.x - 使用 pyvmomi 从关机状态启动虚拟机
- javascript - 以累加器为最终参数的无点归约函数 - 函数式编程 - Javascript - Immutable.js
- android - 为什么只有在方法提取之后才需要 @SuppressLint("WrongCall")
- tfs - VSTS 解决方案构建在经典 ASP.NET 上失败
- c# - 从字符串中提取所有数字
- linker - 将 D 程序与非默认运行时库链接