Вы должны использовать ИЛИ вместо двух интервалов:
SELECT s.*, r.email
FROM sellyourcar s INNER JOIN register r ON s.rid = r.slno
WHERE s.dt BETWEEN DATE_SUB(curdate(),INTERVAL 20 DAY) AND DATE_SUB(curdate(), INTERVAL 19 DAY)
OR s.dt BETWEEN DATE_SUB(curdate(),INTERVAL 40 DAY) AND DATE_SUB(curdate(), INTERVAL 39 DAY)
Как еще одно замечание, по крайней мере в Oracle, я не уверен, что в MYSQL функции BETWEEN также возвращают элементы, соответствующие конечным элементам. Например, от 3 до 5 также будет возвращать элементы, которые были 3 и 5, а не только 4. Таким образом, вы можете просто проверить, если дата электронного письма на 20 или 40 дней меньше текущей даты.