Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: segregowanie po wyniku innego zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
voytass
wyszukujac uzytkownikow nalezy ich posortowac po informacji , ktora jest 'lezy w innej tabeli

np

1 tabela
id, imie, naziwsko

2 tabela
iduzk, iduzk2

iduzk2 to jest id uzytkownika, ktory jest 'polaczony' z innym uzytkownikiem (tutaj z iduzk)

czyli szukamy po nazwisku i chcemy posortowac po ilosci tych polaczen z 2 tabeli

mam to obecnie rozbite na kilka zapytan nie wyglada t dobrze jak i nie jest pewnie bliskie optymalnosci i prawidlowosci.
SongoQ
Sprawa jest bardzo prosta jesli polaczysz te tabelki.

  1. SELECT *
  2. FROM tabela1, tabela2 WHERE tabela1.id = tabela2.iduz ORDER BY tabela1.nazwisko
voytass
ok

zmienilem to na takie zapytanie
  1. SELECT *
  2. FROM uzytkownicy uzk, siatka stk WHERE uzk.id=stk.uzkid OR uzk.id=stk.uzkid2 ORDER BY uzk.nazwisko


to OR wynika z tego, ze w tej tabeli2 (siatka) obie kolumny wskzuja na polaczenia.

a co jesli bym chcial policzyc i dodac ta liczbe polaczen dla kazdego uzytkownika bo takie zapytanie nie ma funkcji agregujacej i nazwisko wyswietlane jest tyle razy ile ma polaczen

----------------------------
chyba mam

  1. SELECT uzk.nazwisko, uzk.imie, count(uzk.nazwisko) polaczenia
  2. FROM uzytkownicy uzk, siatka stk WHERE uzk.id=stk.uzkid OR uzk.id=stk.uzkid2 GROUP BY uzk.nazwisko ORDER BY polaczenia DESC
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.