Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Złączenie zapytań.
Forum PHP.pl > Forum > Bazy danych > MySQL
djmentos
Witam.

Tworzę sobie mały panel i napotkałem problem, nie wiem jak połączyć zapytania.

Schemat bazy:
Kod
stacja:
id | admin-id

osoba:
id | id-stacji (po przecinkach)


czyli zamysł jest taki ze jeden admin może mieć kilka stacji, a jedna osoba moze być przypisana do kilku stacji.

I teraz pytanie jak wylistować wszystkie osoby podlegające pod admina (mając jego id)?
yevaud
najlepiej znormalizuj sobie baze i zamien te "id po przecinkach" w dodatkowa tabele gdzie owych przecinkow nie ma smile.gif inaczej wydaje mi sie ze zapytanie bedzie bardzo mocno nieoptymalne
djmentos
Ok. Znormalizowałem to sobie, wygląda to teraz tak:

STACJA:
OWNER | ID

OSOBA:
ID

STACJE:
ID OSOBY | ID STACJI

Zgodne z tym, idzie jeden wpis do OSOBA i kilka do STACJE, które identyfikują osobę w różnych stacjach i teraz znowu pytanie jak wyciągnąć osoby z kilku stacji?

Mam OWNER'a który ma 3 stacje (1,2,3) i chce zobaczyć wszystkich jego podwładnych, coś takiego sobie kombinuje ale nie wiem czy dobrze celuje:
  1. SELECT * FROM `stacje` WHERE sta_id IN (STACJE OWNERA)

Tylko co tam zamiast tego "STACJE OWNERA" wklepać? biggrin.gif
yevaud
wydaje mi sie ze
  1. SELECT
  2. DISTINCT st.id_osoby
  3. FROM
  4. stacja s,
  5. stacje st
  6. WHERE
  7. s.owner = 123 AND s.id = st.id_stacji;

powinno byc ok, zakladam ze masz id ownera i szukasz jego "podwladnych"
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.