|
|
|
| Например есть таблица
users
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| country | int(11) | NO | | NULL | |
+-------+---------+------+-----+---------+-------+
Как мне одним запросом выбрать 5 юзеров с одной страны и 10 с другой?
Это примерные данные, в реале таблици гораздо больше и ограничения могут быть по возрасту, полу и т.д.
У нас в отделе никто не знает как это сделать и я уже начал думать что это невозможно)) | |
|
|
|
|
|
|
|
для: Filsh
(29.05.2012 в 11:30)
| | что у вас за отдел такой?
Естественно сделать это одним запросом не реально.
Можно конечно прописать алиасы таблице и объеденить при помощи UNION, но по сути это все равно будут два отдельных запроса. | |
|
|
|
|
|
|
|
для: Valick
(29.05.2012 в 12:36)
| | Ну это понятно что UNION можно взять, но вопрос то был одним запросом...
Можно еще сделать через IF и переменные, но это будет хуже и медленее чем два селекта по индексам.
Мне кажется это тривиальная задача и хотелось бы красивого решения. | |
|
|
|
|
|
|
|
для: Filsh
(29.05.2012 в 13:23)
| | но вопрос то был одним запросом...
а я как-то непонятно ответил на вопрос? :) | |
|
|
|
|
|
|
|
для: Valick
(29.05.2012 в 14:06)
| | Если использовать UNION то будут выполняться два запроса + их слияние.
Если уж на то пошло, то лучше просто два SELECT, меньше памяти скушаеться, но два обращения к базе :) | |
|
|
|
|
|
|
|
для: Filsh
(29.05.2012 в 15:02)
| | я думаю в данном случае ни вы ни база разницы не почувствуете
но лично я бы сделал двумя запросами, так больше гибкость при выводе информации в браузер | |
|
|
|