Несколько недель назад я задал вопрос об удалении повторяющихся записей в SQL INNER JOIN. Код, который я использовал в конце концов, похож на следующий ответ:
SELECT ROW_NUMBER() OVER(ORDER BY " + orderField + @") AS RowNum,
mt.ID AS mt_ID,
mt.title AS mt_title,
[...]
MAX(st.title) AS st_title,
-- Other aggregates (MAX, MIN, AVERAGE, ...) for all other columns
-- from sttable, whatever is appropriate.
[...]
FROM mttable AS mt
INNER JOIN sttable AS st on mt.ID =st.ID
WHERE st.field <> 0 AND mt.title = @title
GROUP BY mt.ID,
mt.title
-- Group by everything else from mttable.
Это достаточно хорошо работает для устранения дубликатов, но проблема, с которой я столкнулся сейчас, заключается в том, что я хочу выполнять запросы к sttable (таблице, которая не группируется), а GROUP BY удаляет эти данные. Например, я хочу иметь возможность выполнить запрос WHERE st.title = '...'
Есть ли способ, которым я могу этого достичь? Спасибо.