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

Форум MySQL

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

 

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

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

тема: Выбор: "требуемое" + "перед ним" + "после него"
 
 автор: Sfinks   (14.01.2012 в 18:40)   письмо автору
 
 

Имеется таблица каталогов (cats) и таблица галерей (gals).
В таблице gals поле id_cat определяет к какому каталогу относится галерея.
Требуется выбрать конкретную галерею, например id_gal=8 из каталога id_cat=1 и из того же каталога предыдущую и следующую за ней галерею.

Можно выбрать тремя запросами:
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`=8
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`>8 ORDER BY `id_gal` LIMIT 0,1
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`<8 ORDER BY `id_gal` DESC LIMIT 0,1

Можно двумя:
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`>=8 ORDER BY `id_gal` LIMIT 0,2
SELECT * FROM `gals` WHERE `id_cat`=1 AND `id_gal`<8 ORDER BY `id_gal` DESC LIMIT 0,1

А одним можно?

  Ответить  
 
 автор: cheops   (15.01.2012 в 14:01)   письмо автору
 
   для: Sfinks   (14.01.2012 в 18:40)
 

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

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

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