Я новичок в sql, поэтому, пожалуйста, несите меня здесь. У меня есть две таблицы, COURSES и RESPONSES, которые имеют общий идентификатор пользователя. Я создаю сетку, которая отображает каждое доступное имя пользователя из таблицы COURSES и dateTaken из таблицы RESPONSE. Так что я просто написал запрос как:Выбор значений из нескольких таблиц
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" />
Таблица РЕАКЦИИ может или не может иметь запись ответа пользователей, так что не может быть никакой записи для определенного идентификатора пользователя.
В любом случае, я должен отображать в своем виде сетки любое имя couseName, которое находится в таблице COURSES, независимо от его значения в таблице RESPONSE. Если таблица RESPONSE не имеет записи для этого пользователя, тогда вид сетки будет просто отображаться там или сказать «Не принято» для столбца dateTaken. Мой предыдущий запрос ничего не отображает, если в таблице RESPONSE нет записи. Пожалуйста, помогите.
Спасибо!
почему предложение where? –
потому что у них было это в исходном запросе? Попытка бросить его как можно проще. Не имея данных передо мной и предполагая, что у него есть какое-то значение, кроме фильтра для имитации соединения, я его удерживал. Если нет необходимости, OP мог бы просто удалить его. –
Благодарим за быстрый ответ. Еще одна вещь, что таблица RESPONSE может иметь повторяющиеся записи. Я знаю, что я могу использовать DISTINCT для этого, но тогда это для всей таблицы. Как использовать различие только для таблицы RESPONSE, так что из RESPONSE выбрана только одна запись. – Ratan