gpt4 book ai didi

MySQL 多列连接查询

转载 作者:行者123 更新时间:2023-11-29 13:13:18 25 4
gpt4 key购买 nike

我有一个问题,我认为很简单,但我似乎遇到了一些麻烦。

我有两张 table 。每个表都有完全相同的行。

我正在尝试使用以下查询对两个表执行联接:

SELECT t1.`* FROM `person` as t1 
JOIN `person_temp` as t2
on t1.`date` = t2.`date`
and t1.`name` = t2.`name`
and t1.`country_id`= t2.`country_id`

此查询的要点是查找 t1 中与 t2 匹配的所有行,其中日期、名称和国家 ID 的组合相同(这三列组合起来使记录唯一)。我认为这个查询对于我想要做的事情来说是不正确的,因为如果我在两个表中都有相同的精确数据,我会得到更多的匹配项。

关于如何编辑此查询以完成我想要做的事情有什么想法吗?

最佳答案

不要使用加入。使用存在:

SELECT t1.`*
FROM `person` t1
where exists (select 1
from `person_temp` as t2
where t1.`date` = t2.`date`
and t1.`name` = t2.`name`
and t1.`country_id`= t2.`country_id`
);

为了提高性能,您需要在 person_temp(date, name,country_id) 上建立复合索引(列可以按任何顺序)。

关于MySQL 多列连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21820692/

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