Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PostgreSQL]Trudny select
Forum PHP.pl > Forum > Przedszkole
krzyfn
Witam, mam problem ze stworzeniem selecta, który brałby z jednej tabeli 2 razy imie i nazwisko, tyle ze innej osoby (zastepowej i podzastepowej z tabeli 'funkcyjni'). Chce stworzyc widok, gdzie widac bedzie w jednej tableli - nazwe zastepu, zastepowa i druzynowa.
Ponizej podaje link do screena z tabelek.

http://www.gdynia.mm.pl/~krzyfn/baza_krzyfn.jpg

Pomozecie ? Pomozemy !
phpion
Cytat(krzyfn @ 6.06.2008, 21:57:56 ) *
Pomozecie ? Pomozemy !

Oczywiście, że pomożemy. Polecam zapoznanie się z lekturą na temat złączeń tabel czyli joinów oraz samych selectów bo widzę, że i z nimi masz problem.
Powodzenia!
krzyfn
Ok, zrobiłem coś takiego i działa:


  1. SELECT zastep_harcerek.nazwa,
  2. W1.imie, W1.nazwisko AS zastepowa, W1.pseudo AS pseudo,
  3. W2.imie, W2.nazwisko AS podzastepowa, W2.pseudo AS pseudo
  4. FROM funkcyjni W1, funkcyjni W2, zastep_harcerek
  5. WHERE W1.id_funkcyjny = zastep_harcerek.zastepowa
  6. AND W2.id_funkcyjny = zastep_harcerek.podzastepowa;


Jednak wyświetla wszystko w jednym wierszu. Jak mógłbym wyświetlić zastępową w 1wierszu, a podzastępową w drugim ? (póki co pomijając nazwę zastępu)
oscar17
Możesz użyć UNION za pomocą którego połączysz najpierw jeden wiersz który będzie miał zastępową, a potem drugi podzastępową, tylko muszą mieć wyciągane takie same kolumny (ilość i nazwa).
Ale nie wiem czy jest to Ci potrzebne, bo jeżeli wyciągasz wszystko co potrzebujesz w jednym wierszu to potem to sobie ładnie przez php przetwarzasz i wrzucasz w tabelkę w jednym wierszu zastępową, a w drugim podzastępową i wszystko gra...
Co do łączenie tabel, to poczytaj lepiej jednak o tym JOIN wspomnianym wcześniej.
Nie przyglądałem się aż zanadto twemu zapytaniu, ale widzę że chyba dwóm polom dajesz taki sam alias, a to chyba trochę niepoprawne zastosowanie...
krzyfn
A propos tego samego aliasu, to tak było podane w przykładzie:

  1. <?php
  2. SELECT W1.city, W1.temp_lo AS low, W1.temp_hi AS high,
  3. W2.city, W2.temp_lo AS low, W2.temp_hi AS high
  4. FROM weather W1, weather W2
  5. WHERE W1.temp_lo < W2.temp_lo
  6. AND W1.temp_hi > W2.temp_hi;
  7. ?>


który znalazłem na stronie polecanej mi przez was ^^.
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.