gpt4 book ai didi

MYSQL NOT IN 查询使用 DISTINCT()

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:42 24 4
gpt4 key购买 nike

我有两张 table 。一个是预测列表(又名 PREDS)。另一个是有关预测的汇总统计数据的集合,也称为 STATS。到目前为止,PREDS 有大约 1 毫米的线,但它实际上仅由 30 个不同的模型生成,因此每个模型生成约 30k 个预测。

在 STATS 表中,每一行都是一个模型的汇总统计信息。由于不再存在的旧模型,STATS 表中大约有 100 行。我正在尝试查找 PREDS 表中的哪些模型不在 STATS 表中,以便我可以更新它们的汇总统计数据。

我正在尝试这样的事情:

SELECT distinct(t1.modelnum) FROM `PREDS` t1
where t1.modelnum not in (select distinct(modelnum) from `STATS` t2);

但它需要很长时间才能运行。我可以快速运行不同的方面(select distinct(modelnum) from...)但是当组合起来时,我似乎做错了什么。

有什么建议吗?

最佳答案

如果modelnum column [in both tables] can not be NULL, the LEFT JOIN/IS NULL is the most efficient means :

   SELECT DISTINCT p.modelnum
FROM PREDS p
LEFT JOIN STATS s ON s.modelnum = p.modelnum
WHERE s.modelnum IS NULL

否则,由于重复——[NOT] EXISTS 子句可能是更好的选择:

SELECT DISTINCT p.modelnum
FROM PREDS p
WHERE NOT EXISTS (SELECT NULL
FROM STATS s
WHERE s.modelnum = p.modelnum)

这是一个 look at how the NOT IN/NOT EXISTS and LEFT JOIN/IS NULL stack up when columns are nullable .

关于MYSQL NOT IN 查询使用 DISTINCT(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9753745/

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