【发布时间】:2023-04-06 15:32:01
【问题描述】:
我有两个查询,想在不使用“UNION”的情况下合并这两个查询
例如
查询 1:
Select
T1.Field1,T1.Field2,T2.Field3
from
T1, T2, T3
where T1.XYZ = T2.XYZ AND T1.STATUS = 'S' AND T1.XYZ = T3.XYZ AND T3.ABC = 'Y';
结果:10 行
查询 2:
Select
T1.Field1,T1.Field2,T2.Field3
from
T1, T2, T4
where
T1.XYZ = T2.XYZ AND T1.STATUS = 'W' AND T1.XYZ = T4.XYZ AND T4.ABC = 'Y';
结果:5 行。
有没有办法在不使用“UNION”的情况下将查询 1 和查询 2 合并为一个,并得到结果为 15 (10+5)。
提前致谢
【问题讨论】:
-
你在用什么
RDBMS? -
从不在 from 中使用逗号,总是使用明确的
join语法。 -
我的感觉是不行 - 你必须使用联合(或联合全部)。
-
T3 和 T4 的用途是什么?它们实际上并没有限制来自 T1 或 T2 的任何数据,因为您正在进行交叉连接并且它们与 T1 或 T2 无关;由于您没有显示来自 T3 或 T4 的任何数据;我无法弄清楚为什么它甚至在任何一个查询中。交叉连接是否会使记录数量膨胀一些所需的数量?因为在 T3 和 T5 中有多个 ABC = Y 的记录? (我需要一组样本数据才能在没有联合的情况下解决这个问题)
-
抱歉,我更新了我的查询。