Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przekazywanie danych do podzapytań
Forum PHP.pl > Forum > Bazy danych > MySQL
sweter
Witam,
mam w tablicy następujące kolumny:
1. IDucznia
2. nazwisko
3. imie
4. dom
5. IDklasy
gdzie IDklasy to np. 1a, 1b, 1c, 2a, itp.

Chciałem w wyniku zapytania otrzymać tablicę z takimi kolumnami:
1. IDklasy
2. liczba_dziewczat
3. liczba_chlopcow

Wychodzę z założenia, że dziewczęta (i tylko one) mają imię kończące się na 'a'.

Wykombinowałem takie zapytanie:
  1. SELECT
  2. IDklasy,
  3. count(IDklasy) AS liczba_dziewczat,
  4. (SELECT
  5. count(IDklasy)
  6. FROM
  7. uczniowie
  8. WHERE
  9. imie NOT LIKE '%a' AND
  10. IDklasy='2e'
  11. GROUP BY IDklasy) AS liczba_chlopcow
  12. FROM
  13. uczniowie
  14. WHERE
  15. imie LIKE '%a'
  16. GROUP BY IDklasy;

Jak widać w zapytaniu podrzędnym zwracam liczę chłopców w klasie 2e.
W jaki sposób (i czy tak w ogóle można?) przekazać wartość z kolumny IDklasy z rekordu nadrzędnego do podrzędnego? Innymi słowy: jak skopiować to co jest zwracane w danym rekordzie w linijce 2. do linijki 10. zamiast '2e'?

Pozdrawiam
wmatusiak
Dodajesz alias do uczniowie w zewnętrznym zapytaniu np.
Kod
uczniowie AS u

i wtedy w podzapytaniu możesz użyć
Kod
u.IDklasy


Myślę że o to ci chodziło.
vermis
Do rozróżnienia używa się aliasów tabel, czyli w zapytaniu głównym dajesz
  1. FROM uczniowie u1

a w podzapytaniu
  1. FROM uczniowie u2

teraz
u1.IDklasy jest z zapytania głównego
a u2.IDklasy z podzapytania

//EDIT widzę, że trochę się spóźniłem smile.gif
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.