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

  • Автор темы Автор темы Korner
  • Дата начала Дата начала

Korner

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

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

, как сделать запрос чтобы помиммо id=5 возвращались еще сосдение строки из выборки, то есть те что при сортировке по параметру sort стоят перед и после той у когорой id=5
 
однимзапросом нельзя.
одним можно только одну соседнюю.
добавив условие и лимит.
воторую соседнюю придется вторым запросом
 
Limit даст нам следующую строчку.. так, а как предыдущую получить?
 
Автор оригинала: Фанат
однимзапросом нельзя.
одним можно только одну соседнюю.
добавив условие и лимит.
воторую соседнюю придется вторым запросом
Фанат, можно пример этих двух запросов?
 
Кром, дык - недавно ж тема была.
Korner, дык - точно так же, как следующую, только ордер бай в другую сторону повернуть. и в условие не больше либо равно, а просто меньше поставить
 
не, все равно чето я не догоняю.. пусть юзаем LIMIT , как сделать то? id то не попорядку идут а в разнобой

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

не покатит,, тк id может быть и меньше 5 но стоять после этой строки, тк сортируеться по sort
 
а зачем ты во where id подставляешь???
правильно - не по порядку!
Так и не надо подставлять.
во where надо ставить поле, которое идет по порядку. Это ж очевидно!
 
то есть сначала узнать какой sort у id=5 а затем уже
Where sort>=...
 
у меня есть 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)
 
для 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)
 
сдается мне, это не то, что нужно, для любой версии
ибо id уникально и сколько лимит ни ставь...

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