Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapytanie do bazy dla matrycy dwójkowej
Forum PHP.pl > Forum > Bazy danych
lisartur
Witam
mam coś takiego w bazie
ID ID_PARENT
204
205 204
206 204
207 205
208 205
209 206
210 207
Jest to powiązanie w matrycy kolejno użytkowników kto pod kogo podlega
Mam teraz pytanie bo ciałbym zrobić coś takiego aby podając np nr 205 wyszykać w dół do np 5 poziomu osoby i wyświetlić
Czy da się to zrobić jednym zapytaniem SQL czy trzeba zastosowąc pętle w php i dopiero to zrobić
nospor
Przy tak kiepskiej strukturze tabeli niestety nie zrobisz tego jednym prostym zapytaniem
lisartur
Super wielki dzięki działa i w wyniku mam coś takiego
ZAPYTNIE
SELECT t1.id AS lev1, t2.id as lev2, t3.id as lev3, t4.id as lev4, t5.id as lev5, t6.id as lev6, t7.id as lev7, t8.id as lev8, t9.id as lev9, t10.id as lev10, t12.id as lev11, t13.id as lev13, t14.id as lev14, t15.id as lev15, t16.id as lev16, t17.id as lev17, t18.id as lev18, t19.id as lev19, t20.id as lev20
FROM hi5vs_users AS t1
LEFT JOIN hi5vs_users AS t2 ON t2.id_parent = t1.id
LEFT JOIN hi5vs_users AS t3 ON t3.id_parent = t2.id
LEFT JOIN hi5vs_users AS t4 ON t4.id_parent = t3.id
LEFT JOIN hi5vs_users AS t5 ON t5.id_parent = t4.id
LEFT JOIN hi5vs_users AS t6 ON t6.id_parent = t5.id
LEFT JOIN hi5vs_users AS t7 ON t7.id_parent = t6.id
LEFT JOIN hi5vs_users AS t8 ON t8.id_parent = t7.id
LEFT JOIN hi5vs_users AS t9 ON t9.id_parent = t8.id
LEFT JOIN hi5vs_users AS t10 ON t10.id_parent = t9.id
LEFT JOIN hi5vs_users AS t11 ON t11.id_parent = t10.id
LEFT JOIN hi5vs_users AS t12 ON t12.id_parent = t11.id
LEFT JOIN hi5vs_users AS t13 ON t13.id_parent = t12.id
LEFT JOIN hi5vs_users AS t14 ON t14.id_parent = t13.id
LEFT JOIN hi5vs_users AS t15 ON t15.id_parent = t14.id
LEFT JOIN hi5vs_users AS t16 ON t16.id_parent = t15.id
LEFT JOIN hi5vs_users AS t17 ON t17.id_parent = t16.id
LEFT JOIN hi5vs_users AS t18 ON t18.id_parent = t17.id
LEFT JOIN hi5vs_users AS t19 ON t19.id_parent = t18.id
LEFT JOIN hi5vs_users AS t20 ON t20.id_parent = t19.id
WHERE t1.id = 204




WYNIK
lev1 lev2 lev3 lev4 lev5 lev6 lev7 lev8 lev9 lev10 lev11 lev13 lev14 lev15 lev16 lev17 lev18 lev19 lev20
204 205 207 213 219 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
204 205 207 214 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
204 205 208 215 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
204 205 208 216 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
204 206 210 217 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
204 206 210 218 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
204 206 211 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL

  1. Czy da się zmodyfikowac zapytanie aby dla poszczególnych komlumn zrobić GOUP BY czyli żeby tabela wyglądała mniej więcej tak
  2. lev1 lev2 lev3 lev4 lev5 lev6 lev7 lev8 lev9 lev10 lev11 lev13 lev14 lev15 lev16 lev17 lev18 lev19 lev20
  3. 204 205 207 213 219 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  4. 206 208 214 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  5. 210 215 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  6. 211 216 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  7. 217 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  8. 218 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
  9. NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.