Я пытаюсь создать запрос, который будет включать столбец, указывающий, загрузил ли пользователь документ. У меня есть таблица с именем 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 - есть ли оператор, который даст мне то, что я хочу здесь? Должен ли я придерживаться другого подхода? Или это невозможно?