[英]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.