Я новичок в sql, поэтому, пожалуйста, потерпите меня здесь.
У меня есть две таблицы, КУРСЫ и ОТВЕТЫ, которые имеют общее поле userID. Я делаю сетку, которая отображает для каждого пользователя доступное имя_курса из таблицы КУРСЫ и дату из таблицы ОТВЕТ. Поэтому я просто написал запрос как:
SELECT c.*, r.*
FROM COURSES c, RESPONSE r
WHERE c.userID = @userID1 and r.userID = @userID1 and r.userResponse = NULL
<SelectParameters>
<asp:Parameter Name="userID1" Type="Int32" />
</SelectParameters>
<asp:GridView
ID ="gvAvailCourses"
runat ="server"
DataSourceID ="sdsAvailCourses"
Width ="100%"
DataKeyNames ="trainingCourseID"
PageSize ="10"
AllowPaging ="true"
EnablePersistedSelection="true"
OnRowCommand ="gvAvailCourses_RowCommand"
AutoGenerateColumns ="false">
<Columns>
<asp:BoundField DataField="trainingCourseID" HeaderText="Coursen ID" />
<asp:ButtonField ButtonType="Link" DataTextField="CourseName" CommandName="CourseName" HeaderText="Course Name" />
<asp:BoundField DataField="dateEntered" HeaderText="Last Taken" />
Таблица RESPONSE может содержать или не содержать запись ответа пользователя, поэтому для определенного идентификатора пользователя может не быть записи.
В любом случае мне нужно отобразить в моем виде сетки любое couseName, которое есть в таблице COURSES, независимо от его значения в таблице RESPONSE. Если в таблице RESPONSE нет записи для этого пользователя, то в виде таблицы там будет просто пусто или будет указано «Пока не принято» для столбца dateTaken. Мой запрос выше вообще ничего не отображает, если в таблице RESPONSE нет записей.
Пожалуйста, помогите.
Спасибо!