Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] Pobieranie id wiersza z kolumny z poprzedniego wiersza
neo1986kk
post 25.03.2022, 21:04:36
Post #1





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


id | next
1 | 2
3 | 5
2 | 7
7 | 3

Chciałbym uzyskać

id | next
1 | 2
2 | 7
7 | 3
3 | 5

Czyli po kolei każdy next począwszy od id 1.

I dla chętnych począwszy od wybranego id na przykład zaczynając od 7

id|next
7|3
3|5

Wymyśliłem coś takiego
  1. SELECT t.id, t.next AS next FROM (SELECT t1.id, t1.next FROM TABLE t LEFT JOIN TABLE t1 ON t1.id=t.next) AS t


Ale zwraca coś takiego
id|next

3 | 5
2 | 7
7 | 3

Czyli nie po kolei i bez pierwszego wiersza

  1. SELECT t.id, t.next AS next FROM (SELECT t1.id, t1.id FROM TABLE t1 LEFT JOIN TABLE t2 ON t2.id=t1.next) AS t

Ok, mam wszystkie, ale w złej kolejności, no i nie wiem jak zacząć od id przykładowo 7

1 | 2
3 | 5
2 | 7
7 | 3

Strukturalnie to bym to zrobił mniejwięcej tak:




  1. function getNext($id){
  2. sql: Select next from t where id=$id;
  3. return $ret[0];
  4. }
  5. if(getNext(3)>0){
  6. getNext(getNext(3))
  7. }


No i wiadomo to w jakąś pętlę, ale pomyślałem, że może dało by się zrobić to jednym zapytaniem SQL

Ten post edytował neo1986kk 25.03.2022, 21:22:57
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
neo1986kk
post 26.03.2022, 20:29:57
Post #2





Grupa: Zarejestrowani
Postów: 561
Pomógł: 3
Dołączył: 2.02.2009

Ostrzeżenie: (0%)
-----


Doczytałem, że rercursive działa od wersji 10.2.1, dzięki zrobię update i pewnie będzie wszystko śmigać
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.05.2024 - 06:32