2016-10-30 5 views
0

У меня есть таблица под названием «Статьи» в этой таблице. У меня есть 2 столбца, которые будут необходимы при создании запроса, который я хочу создать. Первый столбец - столбец dateStamp, который является столбцом типа даты. Второй столбец - столбец Counter, который является столбцом int (255). В столбце Counter технически хранятся представления для этого конкретного поля.Получение последних 30 дней записей

Я пытаюсь создать запрос, который будет генерировать последние 30 дней записей. Затем он будет упорядочивать записи на основе большинства просмотров. Этот запрос будет принимать только 10 записей. Текущий запрос у меня есть это:

SELECT * 
FROM Articles 
WHERE DATEDIFF(day, dateStamp, getdate()) BETWEEN 0 and 30 
LIMIT 10 
) TOP10 
ORDER BY Counter DESC 

Этот запрос не показывает каких-либо записей, но я не понимаю, что я делаю неправильно. Какие-либо предложения?

+0

Почему вы используете синтаксис SQL Server, если вы помечаете свой вопрос MySQL? Запрос в вашем вопросе не будет работать в любой базе данных, о которой я могу думать. –

+0

«день» - это зарезервированное слово в MYSQL; вы должны переименовать его, чтобы избежать странных проблем. Вы также можете проверить формат дат перед их сопоставлением. – Sablefoste

+0

@Sablefoste Посмотрите еще раз. Это ключевое слово, но не зарезервированное слово. В списке ключевых слов нет (R). – Barmar

ответ

2

версия MySQL запроса будет выглядеть следующим образом:

SELECT a.* 
FROM Articles a 
WHERE a.dateStamp >= CURDATE() - interval 30 day 
ORDER BY a.counter DESC 
LIMIT 10; 

Ваш запрос генерируется ошибка. Вы должны посмотреть на эту ошибку, прежде чем исправлять запрос.

В SQL Server запрос будет выглядеть по-другому.

+0

Я скоро приму ваш ответ, но он успешно работает. Большое спасибо! Не могли бы вы рассказать мне, что такое a в этом запросе? – user2896120

+0

@ пользователь2896120. , , Это псевдоним таблицы. Вы должны использовать их и квалифицированные имена столбцов. –

+0

Для удобства чтения и семантики используйте слово 'AS' в строке 2, чтобы оно читало' FROM Articles AS a'. Однако не обязательно для запроса. ;) – Sablefoste

Смежные вопросы