Můžete použít jednoduchý JOIN pro tuto práci:
SELECT
m1.*
FROM
mytable m1
INNER JOIN mytable2 m2
ON m1.history = m2.history
vrátí:
id emails phones history insert_date
237 PLEASE SET [email protected] gomez 2015-01-11
Dotaz ve vaší otázce by vypadal takto:
SELECT
m1.*
FROM
mytable m1
INNER JOIN mytable2 m2
ON m1.history = m2.history
WHERE `insert_date` >= DATE_SUB(CURDATE(), INTERVAL 3 DAY)
A správně nevrací nic, protože jediný kvalifikující záznam má datum starší než 3 dny.
Zde je neuvěřitelně užitečná infografika týkající se množinových operací s funkcemi SQL
http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_oSQL_JOINS .jpg