具有多列的数据库的MySQL连接查询

具有多列的数据库的MySQL连接查询,mysql,join,Mysql,Join,我有一个问题,我认为很简单,但我似乎有一些麻烦 我有两张桌子。每个表都有完全相同的行 我正在尝试使用以下查询对两个表执行联接: 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

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

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

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

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的组合相同(这三个列的组合使记录唯一)。我不认为这个查询对于我正在尝试做的事情是正确的,因为如果我在两个表中都有相同的精确数据,那么我会得到更多的匹配


关于如何编辑此查询以完成我正在尝试的操作,您有什么想法吗

不要使用
join
。使用
存在

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\u temp(日期、姓名、国家/地区id)
(列可以按任何顺序排列)。

请在SQLFIDLE中发布代码和表结构,我们可以解决这个问题。这应该是正确的,除非表中有重复项。