Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выборка двух множеств записей одним запросом
 
 автор: Filsh   (29.05.2012 в 11:30)   письмо автору
 
 

Например есть таблица
users
+-------+---------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| id | int(11) | NO | | NULL | |
| country | int(11) | NO | | NULL | |
+-------+---------+------+-----+---------+-------+

Как мне одним запросом выбрать 5 юзеров с одной страны и 10 с другой?
Это примерные данные, в реале таблици гораздо больше и ограничения могут быть по возрасту, полу и т.д.
У нас в отделе никто не знает как это сделать и я уже начал думать что это невозможно))

  Ответить  
 
 автор: Valick   (29.05.2012 в 12:36)   письмо автору
 
   для: Filsh   (29.05.2012 в 11:30)
 

что у вас за отдел такой?
Естественно сделать это одним запросом не реально.
Можно конечно прописать алиасы таблице и объеденить при помощи UNION, но по сути это все равно будут два отдельных запроса.

  Ответить  
 
 автор: Filsh   (29.05.2012 в 13:23)   письмо автору
 
   для: Valick   (29.05.2012 в 12:36)
 

Ну это понятно что UNION можно взять, но вопрос то был одним запросом...
Можно еще сделать через IF и переменные, но это будет хуже и медленее чем два селекта по индексам.
Мне кажется это тривиальная задача и хотелось бы красивого решения.

  Ответить  
 
 автор: Valick   (29.05.2012 в 14:06)   письмо автору
 
   для: Filsh   (29.05.2012 в 13:23)
 

но вопрос то был одним запросом...
а я как-то непонятно ответил на вопрос? :)

  Ответить  
 
 автор: Filsh   (29.05.2012 в 15:02)   письмо автору
 
   для: Valick   (29.05.2012 в 14:06)
 

Если использовать UNION то будут выполняться два запроса + их слияние.
Если уж на то пошло, то лучше просто два SELECT, меньше памяти скушаеться, но два обращения к базе :)

  Ответить  
 
 автор: Valick   (29.05.2012 в 15:10)   письмо автору
 
   для: Filsh   (29.05.2012 в 15:02)
 

я думаю в данном случае ни вы ни база разницы не почувствуете
но лично я бы сделал двумя запросами, так больше гибкость при выводе информации в браузер

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования