gpt4 book ai didi

mysql - 更复杂查询中的 COUNT() 和 SELECT

转载 作者:行者123 更新时间:2023-11-29 05:40:07 26 4
gpt4 key购买 nike

我目前正在使用以下查询(确实已简化):

SELECT
(
SELECT COUNT(id)
FROM bla_1
WHERE id NOT IN (SELECT id FROM blahhh)
)
+
(
SELECT COUNT(id)
FROM bla_2
WHERE id NOT IN (SELECT id FROM blahhh)
)
as count

在有人提到它之前,我可以添加 bla_1bla_2 不包含相同的数据,即使使用简化的查询看起来是这样。

这里的问题是,第二个查询计数的一些 ID 已经被第一个查询处理了。换句话说,第二个查询可能会返回“2”,并且这 2 个计数行中的一个已经被第一个查询计数了。

因此,由于两个查询都有一些共同的 ID,我不想重复计算,所以我想到了:

SELECT
(
SELECT COUNT(id)
FROM bla_1
WHERE id NOT IN (SELECT id FROM blahhh)
)
+
(
SELECT COUNT(id)
FROM bla_2
WHERE id NOT IN (SELECT id FROM blahhh)
AND id NOT IN (SELECT id
FROM bla_1
WHERE id NOT IN (SELECT id FROM blahhh)
)
)
as count

您会注意到第二个查询 中的第二个子查询 与第一个查询完全相同。

我的问题是,如果不执行两次相同的查询(第一次计算结果,第二次实际检索这些结果),我就无法完成这项工作。

非常喜欢解决这个问题的人:-)

最佳答案

尝试使用 UNION将为您消除重复项的操作。

SELECT COUNT(ID) AS MyCount
FROM
( SELECT ID FROM Table1 WHERE /*....*/
UNION
SELECT ID FROM Table2 WHERE /*....*/
) r

关于mysql - 更复杂查询中的 COUNT() 和 SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7390673/

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