gpt4 book ai didi

mysql - 优化mysql join 列中有很多重复数据时join on

转载 作者:行者123 更新时间:2023-11-30 23:31:27 25 4
gpt4 key购买 nike

我有两个表,我需要用一列连接它们并在两个表中建立索引。但是这两个表的两列都包含重复多次的相同值。所以用于连接的列看起来像这样:

TableA.column2 Table B.column3

    1             2  
1 2
1 1
4 1
4 4
5 3

现在据我对 BNL 和 BKA 算法的了解,它们会从表 A 中逐行读取并在表 B 中查找匹配的记录。但是查找匹配的记录没有任何意义对于此 A 表的第二行,因为该值再次为“1”,它已经具有对具有相同列值的 row1 执行的操作的匹配记录。
这只是时间和资源的浪费。如果它可以在表 A.column2 中选择不同的值,然后在表 B.column3 中查找匹配的记录,然后将它们组合在一起,那就更好了。
你能告诉我另一种在 mysql 中加入操作的算法,它可以完成我正在谈论的那种事情吗??

最佳答案

通过使用 Distinct 将确保返回的最终列的唯一性。现在,进行左连接将确保来自 TableA 的所有内容...但是,如果在 tableB 中没有匹配的记录,则 COALESCE() 将返回值 0 而不是 null——因此表明 tableB 文件中没有记录。

select TA.Column2, GROUP_CONCAT(TB.Column3 order by TB.Column3 ) As Column3Values
from
TableA TA
LEFT JOIN TableB TB
on TA.Column2 = TB.Column3
group by
TA.Column2

从你的数据中,你应该得到类似的东西

Column2  Column3Values
1 1, 2
4 1, 4
5 3

关于mysql - 优化mysql join 列中有很多重复数据时join on,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10397168/

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