|
|
|
| Всем привет.
Как можно реализовать выборку из выборки?
Задача в том, чтобы взять 50 последних записей из таблицы и потом из них взять 10 записей отсортированных случайно, и всё это одним запросом... Или одним нельзя?
К примеру так вот:
SELECT id FROM (SELECT id FROM tbl ORDER BY id DESC LIMIT 50) ORDER BY RAND() LIMIT 10
|
Не работает... | |
|
|
|
|
|
|
|
для: Trivium
(25.10.2010 в 14:25)
| |
SELECT id FROM tbl WHERE id IN
(SELECT id FROM tbl ORDER BY id DESC LIMIT 50)
ORDER BY RAND() LIMIT 10
|
| |
|
|
|
|
|
|
|
для: Лена
(25.10.2010 в 16:24)
| | #1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' | |
|
|
|
|
|
|
|
для: Trivium
(25.10.2010 в 16:28)
| | В подзапросе не проходит LIMIT
А какая у вас версия MySQL? | |
|
|
|
|
|
|
|
для: Лена
(25.10.2010 в 16:34)
| | 5.1.51
все лимиты работают, скорее в IN нельзя писать подзапросы | |
|
|
|
|
|
|
|
для: Trivium
(25.10.2010 в 16:41)
| | Подзапросы точно можно. LIMIT , видимо, нельзя.
У меня тут еще один вариант возник. А если попробовать вот так:
SELECT id FROM tbl t
JOIN (SELECT id FROM tbl ORDER BY id DESC LIMIT 50) t2 ON t.id = t2.id
ORDER BY RAND() LIMIT 10
|
| |
|
|
|
|
|
|
|
для: Лена
(25.10.2010 в 16:48)
| | А что за t и t2? | |
|
|
|
|
|
|
|
для: Trivium
(25.10.2010 в 17:03)
| | алиасы :)
заставьте работать Ваш первый вариант, он как ни крути лучше) | |
|
|
|
|
|
|
|
для: Trivium
(25.10.2010 в 17:03)
| | вот так кстати работает
SELECT id FROM tbl WHERE id IN
(SELECT id FROM tbl ORDER BY id DESC)
ORDER BY RAND() LIMIT 10
|
Таки IN не поддерживает лимиты... | |
|
|
|
|
|
|
|
для: Trivium
(25.10.2010 в 17:08)
| | а вот так?
SELECT t.id FROM (SELECT id FROM tbl ORDER BY id DESC LIMIT 50) AS t ORDER BY RAND() LIMIT 10
|
| |
|
|
|
|
|
|
|
для: Valick
(25.10.2010 в 17:12)
| | Так сортирует только последнюю десятку, но не 50 записей... | |
|
|
|
|
|
|
|
для: Trivium
(25.10.2010 в 14:25)
| | отдельно SELECT id FROM tbl ORDER BY id DESC LIMIT 50 работает?
кстати Ваш вариант на мой взгляд лучше чем вариант Лены. | |
|
|
|
|
|
|
|
для: Valick
(25.10.2010 в 16:39)
| | чем лучше? Тут как бы от перемены слагаемых... | |
|
|
|
|
|
|
|
для: Лена
(25.10.2010 в 16:49)
| | тут как бы... не так
в первом случае только сортировка
во втором случае сортировка + поиск
__
поставте себя на место MySQL :) | |
|
|
|
|
|
|
|
для: Trivium
(25.10.2010 в 14:25)
| | А из FROM получается нельзя делать выборки? | |
|
|
|