Я пытаюсь построить запрос, который будет содержать столбец, указывающий, загрузил ли пользователь документ. У меня есть таблица под названием HasDownloaded со следующими столбцами: id, documentID, memberID. Узнать, загружен ли пользователь конкретный документ, легко; но мне нужно сгенерировать запрос, в котором результаты будут выглядеть следующим образом:
name id
----------------------
abc NULL
bbb 2
ccc 53
ddd NULL
eee 13
Идентификатор не очень важен; меня интересует, был ли загружен документ (это NULL или нет).
Вот мой запрос:
SELECT Documents.name, HasDownloaded.id FROM Documents
LEFT JOIN HasDownloaded ON HasDownloaded.documentID = Documents.id
WHERE HasDownloaded.memberID = @memberID
Проблема заключается в том, что это приведет только к возврату значений, если для указанного пользователя существует запись в таблице HasDownloaded. Я хотел бы сохранить это просто и только иметь записи в HasDownloaded для документов, которые были загружены. Поэтому, если пользователь 1 загрузил abc, bbb и ccc, я все равно хочу, чтобы ddd и eee отображались в результирующей таблице, только с идентификатором как NULL. Но предложение WHERE дает только значения, для которых существуют записи.
Я не очень эксперт по SQL - есть ли оператор, который даст мне то, что я хочу здесь? Должен ли я придерживаться другого подхода? Или это невозможно?