взять соседние записи с выбраной

Korner

Новичок
взять соседние записи с выбраной

смотрите я делаю запрос типа
SELECT id, text FROM tree Where id='5' ORDER BY sort

, как сделать запрос чтобы помиммо id=5 возвращались еще сосдение строки из выборки, то есть те что при сортировке по параметру sort стоят перед и после той у когорой id=5
 

Фанат

oncle terrible
Команда форума
однимзапросом нельзя.
одним можно только одну соседнюю.
добавив условие и лимит.
воторую соседнюю придется вторым запросом
 

Korner

Новичок
Limit даст нам следующую строчку.. так, а как предыдущую получить?
 

Кром

Новичок
Автор оригинала: Фанат
однимзапросом нельзя.
одним можно только одну соседнюю.
добавив условие и лимит.
воторую соседнюю придется вторым запросом
Фанат, можно пример этих двух запросов?
 

Фанат

oncle terrible
Команда форума
Кром, дык - недавно ж тема была.
Korner, дык - точно так же, как следующую, только ордер бай в другую сторону повернуть. и в условие не больше либо равно, а просто меньше поставить
 

Korner

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

берем следующего соседа
запрос
SELECT id FROM tree WHERE id>='5' ORDER BY sort LIMIT 0,2

не покатит,, тк id может быть и меньше 5 но стоять после этой строки, тк сортируеться по sort
 

Фанат

oncle terrible
Команда форума
а зачем ты во where id подставляешь???
правильно - не по порядку!
Так и не надо подставлять.
во where надо ставить поле, которое идет по порядку. Это ж очевидно!
 

Korner

Новичок
то есть сначала узнать какой sort у id=5 а затем уже
Where sort>=...
 

Korner

Новичок
у меня есть id=5
надо найти соседние id при сортировке по полю sort

ты говоришь
просто аписать Where sort>=.
sort больше чего? надо найти sort
Select sort From tree where id='5'
а затем уже
Select id From Tree sorn>=... Order by sort Desc Limit 0,2

и для предыдушего еще один зарос.. выходит 3 а не 2)
 

chira

Новичок
для MySQL4
Код:
(SELECT id, text 
FROM tree 
Where id='5' 
ORDER BY sort ASC LIMIT 2)
union
(SELECT id, text 
FROM tree 
Where id='5' 
ORDER BY sort DESC LIMIT 2)
 

Фанат

oncle terrible
Команда форума
сдается мне, это не то, что нужно, для любой версии
ибо id уникально и сколько лимит ни ставь...

Другое дело, что он не может сообразить подставлять во where то поле, по которому он сортирует
 

chira

Новичок
Фанат
похоже у него поле id это foreign key .?.?.?
но если как ты предполагаешь, что это UK или PK
то мой SQL пролетает ...
 

Фанат

oncle terrible
Команда форума
даже если не ЮК, а товарищу надо просто подумать
 
Сверху