То, что я пытаюсь сделать, это перечислять записи каждый раз, когда они отсылают кого-то, и этот человек также указан в таблице записей. 3 различных запроса, которые я пробовал:
SELECT a.ID,b.Email FROM Entries a
INNER JOIN ReferAFriend b ON b.EntryID = a.ID
INNER JOIN (SELECT DISTINCT Email FROM Entries c ON b.Email = c.Email)
WHERE a.ID = 47667
SELECT a.ID,b.Email FROM Entries a
INNER JOIN ReferAFriend b ON b.EntryID = a.ID AND b.Email IN (SELECT DISTINCT Email FROM Entries)
WHERE a.ID = 47667
SELECT a.ID,b.Email FROM Entries a
INNER JOIN ReferAFriend b ON b.EntryID = a.ID
WHERE b.Email IN (SELECT DISTINCT Email FROM Entries) AND a.ID = 47667
Результатом всех 3 является всего 1 запись.
Если я сделаю:
SELECT a.ID,b.Email FROM Entries a
INNER JOIN ReferAFriend b ON b.EntryID = a.ID
WHERE a.ID = 47667
Я получаю список из 20 записей, потому что есть 20 приглашенных друзей, однако в базе данных записей есть только 4 записи, и это то, что другой запрос должен фильтровать из этих 20, но он возвращает только 1 результат.
Кто-нибудь может указать мне правильное направление здесь?
Спасибо.