簡體   English   中英

MySQL聯接查詢多列

[英]MySQL Join Query for With Multiple Columns

我有一個我認為很簡單的問題,但似乎有些麻煩。

我有兩張桌子。 每個表具有完全相同的行。

我正在嘗試使用以下查詢在兩個表上執行聯接:

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匹配的所有行,其中date,name和country_id的組合相同(這三列組合使一條記錄唯一)。 我認為此查詢對我要執行的操作不正確,因為如果兩個表中的數據都相同,我將得到更多的匹配項。

關於如何編輯此查詢以完成我要執行的操作的任何想法?

不要使用join exists用途:

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)上使用復合索引(列可以按任何順序排列)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM