В основном у меня есть список ключевых слов SEO в одной таблице и их рейтинг, включая дату, введенную в другой таблице.
ключевые слова
[keywordID(PKID)] [keyword]
----------------------------
1 SEO
2 Vancouver Homes
keywordRanking
[rankingID(PKID)] [keywordID(FKID)] [ranking] [rankingDate(timestamp)]
----------------------------------------------------------------------
1 1 3 Jan 01, 2010
2 1 5 Jan 02, 2010
3 1 8 Jan 03,2010
4 2 4 Jan 01, 2010
Вот результаты, которые я хочу. Я хочу получить последний рейтинг ключевого слова на основе его последнего рейтинга Дата без дубликатов.
Для приведенных выше данных он должен вернуть:
[keywordID] [rankingID] [ranking] [rankingDate]
-----------------------------------------------
SEO 1 3 8 Jan 03, 2010
Vancouver Homes 4 2 4 Jan 01, 2010
Каким будет утверждение, чтобы выбрать последний рейтинг по ключевому слову? Прямо сейчас у меня он возвращает повторяющиеся строки для ключевого слова ID.
Пожалуйста, спросите, нужна ли дополнительная информация, вот мое текущее заявление sql.
SELECT *
from keywords,
keywordRankings
WHERE keywords.keywordID = keywordRankings.keywordID;
Мое текущее решение, которое работает для меня ...
SELECT s1.keywordID, keyword, rankingDate, ranking
FROM keywords s1, keywordRankings
WHERE keywordRankingRecord = (
SELECT MAX( s2.keywordRankingRecord )
FROM keywordRankings s2
WHERE s1.keywordID = s2.keywordID )