Вниз
Скачать: CL | DM;

Как составить запрос который бы возвратил три записи:   Найти похожие ветки 

← →
zorik ©   (2006-09-11 17:38) [0]

1-я предыдущая  перед второй
2-я где id равно заданому значению
3-я после второй

Например:

id   | name
----+------
23  | b
1   | a
54  | d
3  | f
100 | e
12  | c

select * from table order by name

1  a
23 b
12 c
54 d
100 e
3  f


Задаем параметр id=12 нужно получить:
23 b
12 c
54 d

id=100:
54 d
100 e
3  f

и т.д.


← →
Desdechado ©   (2006-09-11 17:48) [1]

а для кода 1 чего?


← →
atruhin ©   (2006-09-11 17:55) [2]

А если перед заданной, несколько записей с одинаковым name, какую выводить?
Вообще запрос составить можно, но эффективнее будет решить хранимкой.


← →
zorik ©   (2006-09-11 17:55) [3]

Типа этого:
1  a
1  a
23 b

Обясняю. Это структура для веба. Навигация по записям


← →
zorik ©   (2006-09-11 18:00) [4]

name -> unique, id - primary key


← →
zorik ©   (2006-09-11 18:02) [5]

Хранимкой, думаю смогу. Но получится ли запустить ее в php пока не знаю. Буду пробовать


← →
ANB ©   (2006-09-11 18:25) [6]

WITH t AS
    (
       SELECT 23 ID, "b" NAME
         FROM DUAL
       UNION ALL
       SELECT 1, "a"
         FROM DUAL
       UNION ALL
       SELECT 54, "d"
         FROM DUAL
       UNION ALL
       SELECT 3, "f"
         FROM DUAL
       UNION ALL
       SELECT 100, "e"
         FROM DUAL
       UNION ALL
       SELECT 12, "c"
         FROM DUAL)
SELECT *
 FROM t
WHERE NAME = (SELECT MAX (NAME)
                FROM t
               WHERE NAME < (SELECT NAME
                               FROM t
                              WHERE ID = :ID))
UNION ALL
SELECT *
 FROM t
WHERE ID = :ID
UNION ALL
SELECT *
 FROM t
WHERE NAME = (SELECT MIN (NAME)
                FROM t
               WHERE NAME > (SELECT NAME
                               FROM t
                              WHERE ID = :ID))

Эта. with только в оракле прокатит, посему надо будет t заменить на имя таблицы.


← →
atruhin ©   (2006-09-11 18:38) [7]

Не знаю как ОРАКЛ но FB будет вычислять вложенные запросы отдельно, поэтому хранимкой эффективней.

> Хранимкой, думаю смогу. Но получится ли запустить ее в php
> пока не знаю.

Запрос из хранимки ни чем не отличается от запроса из таблицы, так что php тут не при чем.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
15-1160758042
Chort
2006-10-13 20:47
2006.11.05
каким образом можно создать файл .chm или .hlp


15-1161090804
SPeller
2006-10-17 17:13
2006.11.05
Новый вид спама или чьи-то шаловливые руки?


5-1141155140
Чайник
2006-02-28 22:32
2006.11.05
Не ловятся сообщения от мышиного колесика WM_MOUSEWHEEL


4-1150704727
Kirill.info
2006-06-19 12:12
2006.11.05
как получить картинку развернувшегося меню?


1-1158731446
WhiteBarin
2006-09-20 09:50
2006.11.05
Работает ли Sleep в реальном времени?




   Наверх