gpt4 book ai didi

sql - 正确的 Oracle 查询

转载 作者:搜寻专家 更新时间:2023-10-30 23:10:27 25 4
gpt4 key购买 nike

我的表 A 有以下记录:

表A

+----+-----+
|Tuid|Etuid|
+----+-----+
|d1 |E1 |
+----+-----+
|d2 |E1 |
+----+-----+
|d3 |E2 |
+----+-----+
|d4 |E3 |
+----+-----+
|d5 |E4 |
+----+-----+

表B

+----+---+
|Tuid|FID|
+----+---+
|d1 |1 |
+----+---+
|d2 |2 |
+----+---+
|d3 |1 |
+----+---+
|d3 |2 |
+----+---+
|d4 |1 |
+----+---+
|d4 |2 |
+----+---+
|d5 |1 |
+----+---+
|d5 |3 |
+----+---+

这里的Tuid od表A和表B的Tuid是相关的。我想查询在同一个 Etuid 中有 1 个和 2 个 FID 的所有记录。我期待 E1、E2 和 E3 结果。我不应该得到 E4,因为它只包含“1”FID 而不是“2”。

我写过这样的查询:

SELECT TableA.ETuid
FROM TableA
WHERE TableA.Tuid IN (
SELECT TableB.Tuid
FROM TableB
WHERE TableB.FID IN (1, 2)
GROUP BY TableB.Tuid
HAVING COUNT(*) = 2
)

这只给出了 E2 和 E3 结果,请帮助我在结果中也得到 E1。

最佳答案

试试这段代码(未测试)

select a.ETuid
from tablea a
join tableb b on (a.ETuid= b.ETuid)
where b.fid in (1,2)
group by a.ETuid
having count(distinct b.fid) = 2

关于sql - 正确的 Oracle 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21156553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com