אתה עושה טבלה נפרדת, ששמה יש מה הוא שמע, נניח נקרא לה ModhaToPhone, יש בה שלוש עמודות: ModhaId, Phone, At שזה מזהה מודעה, מזהה מאזין - מספר טלפון ותאריך.
בשליפת הסינון אתה מחבר בין הטבלה של הדירות (מודעות) לטבלת הדירה_מאזין עם LEFT JOIN עם התניה שדירה_מאזין ריק, ככה:
SELECT * FROM Modaot
LEFT JOIN ModhaToPhone ON ModhaToPhone.ModhaId = Modaot.Id AND ModhaToPhone.Phone = '050xxxx'
WHERE ModhaToPhone.ModhaId IS NULL
השאילתה הזאת לוקחת מטבלת המודעות רק שורות שאין להם שורה תאומה בטבלת הModhaToPhone עם הטלפון של המתקשר הנוכחי, מה שמבטיח שהוא לא יקבל תוצאות שהוא כבר שמע.
נוסח שונה לשליפה:
SELECT * FROM Modaot
WHERE NOT EXISTS(
SELECT 1 FROM ModhaToPhone WHERE ModhaToPhone.ModhaId = Modaot.Id AND ModhaToPhone.Phone = '050xxxx'
)
כמובן שאחרי השליפה והשמעה יש להכניס לטבלת ההשמעות את המודעות.