Sie können einen einfachen JOIN verwenden für diese Stelle:
SELECT
m1.*
FROM
mytable m1
INNER JOIN mytable2 m2
ON m1.history = m2.history
gibt zurück:
id emails phones history insert_date
237 PLEASE SET [email protected] gomez 2015-01-11
Die Abfrage in Ihrer Frage würde folgendermaßen aussehen:
SELECT
m1.*
FROM
mytable m1
INNER JOIN mytable2 m2
ON m1.history = m2.history
WHERE `insert_date` >= DATE_SUB(CURDATE(), INTERVAL 3 DAY)
Und es wird korrekterweise nichts zurückgegeben, da der einzige qualifizierende Datensatz ein Datum hat, das älter als 3 Tage ist.
Hier ist eine unglaublich nützliche Infografik, die Set-Operationen mit SQL-Funktionen in Beziehung setzt
http://www.codeproject.com/KB/database/Visual_SQL_Joins/Visual_SQL_JOINS_orig .jpg