2015-01-14 6 views
-1

Я хочу проверить последние 20 идентификаторов из db и показать 7 наиболее нажатых Я сделал что-либо, что я просто не могу найти, как это сделать Я пытался, что многие считают примером, чтобы понять, что я хочу ... Мне просто нужно заказать их по два по алфавиту и с различными предельными, но его не работает и, а если я напишу его в другой строке она занимает последний ...ORDER by desc/desc with different LIMIT

SELECT * FROM search ORDER BY id DESC LIMIT 20 
SELECT * FROM search ORDER BY clicks DESC LIMIT 7 

Или SELECT * FROM поиск ORDER BY id DESC LIMIT 20, а затем найти 7 самых больших в php и показать их ...

+0

Вы пробовали союз? –

+0

SELECT * FROM search ORDER BY id DESC, нажимает DESC LIMIT 20, как это? – OnlyMultiHD

+0

SELECT * FROM поиска ORDER BY ид DESC LIMIT 20 UNION SELECT * FROM поиска ORDER BY щелчками DESC LIMIT 7 –

ответ

1

А вот запрос ANSI SQL:

SELECT * FROM 
(SELECT * FROM "search" ORDER BY id DESC FETCH FIRST 20 ROWS ONLY) 
ORDER BY clicks DESC FETCH FIRST 7 ROWS ONLY 

Внутренний SELECT используется для получения последних 20 идентификаторов. Затем выбрать 7 наиболее щелкнул из этих 20.

Если DBMS не поддерживает FETCH FIRST, попробуйте LIMIT или любой другой ...

Кстати, поиск зарезервированное слово в ANSI SQL, так что он должен действительно быть двойным, т. е. «искать».