Я постараюсь быть таким конкретным, как я могу здесь, так что вот запрос с использованием MsAccess.Запрос не показывает ожидаемый результат
SELECT MsThread.ID,
MsThread.ThreadName,
COUNT(MsThread.ThreadName) AS TotalPost
FROM MsThread
LEFT OUTER JOIN MsPosts
ON MsThread.ThreadName = MsPosts.ThreadName
GROUP BY MsThread.ID, MsThread.ThreadName, MsThread.ThreadCategory
Когда я запустил запрос в MSACCESS он возвращает это:
Это показывает, что у меня есть 4 строки (# нитей), а число 5,2,1,1 это число сообщений с указанными потоками. Здесь я пытаюсь получить resultet для возврата 4 вместо 9, поэтому я могу зацикливать его без недопустимой ошибки состояния курсора.
rs.last();
int row = rs.getRow();
, который возвращает 8, поэтому я угадываю, как его вернуть, сколько всего было выполнено. так как я могу заставить его вернуть 4, аналогичный функции COUNT?
Большое спасибо!
Как вы знаете, строки, возвращающие 'TotalPost = 1', не гарантируют, что на самом деле есть строка. Использование LEFT JOIN означает, что строки в «MsPosts» не требуются, поэтому, если нет строки, она просто подсчитывает одну строку в «MsThread». Я также сомневаюсь, что это запрос, который вы выполняете, указав, что 'threadcategory' отображается в ваших результатах, но столбец не входит в ваш список' SELECT'. –