gpt4 book ai didi

加入MySQL。如何只加入第一场比赛? (加入限制1)

转载 作者:可可西里 更新时间:2023-11-01 07:37:06 24 4
gpt4 key购买 nike

我有一个包含 1 000 000 条记录的表。 (t1)有非常快的“选择查询”,并返回 ID 的单列结果。 (结果我只有唯一的 ID。例如:1,2,5,10,.. (没有重复值))

EXPLAIN SELECT 只显示我输入 indexref(完美查询 :))

但是我需要通过这种方式从记录中过滤这个结果:与其他 1 000 000 个表的内部连接 ​​(t2)

ON (`t1`.`some_column_id` = `t2`.`ref_id` AND `t1`.`user_id` = 4)

它显示了 t1 的所有匹配项。some_column_id = t2ref_id即使我使用

GROUP BY `t1`.`some_column_id` AND/OR LIMIT of 30 ROWS

mysql服务器失败

您打算如何限制此 INNER JOIN 只有第一场比赛?

最佳答案

根据可用信息,我找到了这个解决方案。在如此大的数据库上执行这可能需要一些时间。我仍在寻找更好的选择。

假设字段“some_column_id”或“ref_id”不是唯一的。首先通过使用一些聚合函数(例如 MIN())选择一个 id(主键)来使它们唯一。像这样使用它:

SELECT tTwo.* FROM (SELECT notUnique, MIN(id) AS min FROM t GROUP BY notUnique) tOne INNER JOIN t AS tTwo ON (tTwo.id=tOne.min)

请注意,上述查询仅应用于一个表,以使给定的列唯一。

根据需要将其应用于表格后,您只需执行此操作

SELECT * FROM t1_unique INNER JOIN t2_unique ON (t1_unique.some_column_id = t2_unique.ref_id)

t1_uniquet2_unique 将分别为 some_column_idref_id 提供唯一值。

关于加入MySQL。如何只加入第一场比赛? (加入限制1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25909685/

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