Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Pobieranie kilku danych z tej samej tabeli (z tej samej kolumny)
Forum PHP.pl > Forum > Przedszkole
-Omen-
Witam wszystkich

Mam problem z zapytaniem do bazy MySql.

Mam 2 tabele:

1. Kierownicy - przechowuje dane o kierowniku: id(autoincrement), imię, nazwisko, pomocnik1, pomocnik2, pomocnik3, pomocnik4, pomocnik5
2. Pomocnicy - przechowuje dane o pomocnikach: id(autoincrement), imię, nazwisko, adres, itd.

Pomocnik1,...,pomocnik5 zawierają odpowiednie id(pomocników) z tabeli Pomocnicy.

I teraz moje pytanie w jaki sposób pobrać z bazy informacje o kierownikach i przydzielonych im pomocnikach?

Napisałem takie zapytanie:
  1. SELECT k.imie, k.nazwisko, k.login, p1.imie, p1.nazwisko, p2.imie, p2.nazwisko, p3.imie, p3.nazwisko, p4.imie, p4.nazwisko, p5.imie, p5.nazwisko FROM kierownicy k, pomocnicy p1, uczniowie p2, uczniowie p3, uczniowie p4, uczniowie p5 WHERE k.id_ucznia=p1.id AND k.id_ucznia2=p2.id AND k.id_ucznia3=p3.id AND k.id_ucznia4=p4.id AND k.id_ucznia5=p5.id;


Zwraca mi baza to co jest mi potrzebne jednak z małym ale wyświetla tylko tego kierownika który posiada 5 pomocników.
Żeby działało poprawnie dodałem do bazy do tabeli pomocnicy pomocnika o id 0. Aktualnie wyświetla to co powinien. Jednak zastanawiam się czy jest możliwość aby można było wyświetlać to co jest mi potrzebne ale bez konieczności dopisania do tabeli pomocnicy id 0?

Jeśli ktoś ma pomysł jak to zrobić to będę bardzo wdzięczny za pomoc. Bardzo możliwe że istnieje jakieś "lepsze" zapytanie do bazy aby uzyskać interesujący mnie wynik. Jeśli tak to prosił bym o nakierowanie czego mam szukać, bo jak na razie to nie mam żadnego pomysłu.

Korzystając z okazji mam pytanie odnośnie różnicy między tymi zapytaniami:

  1. SELECT k.imie, k.nazwisko, p.imie, p.nazwisko FROM opiekunowie k, uczniowie p WHERE k.id_ucznia=p.id;


  1. SELECT k.imie, k.nazwisko, p.imie, p.nazwisko FROM opiekunowie k JOIN uczniowie p ON o.id_ucznia=u.id;


Jedno i 2 zapytanie zwracają te same dane. Czy jest jakaś zasada kiedy jakiego używać?

PS: Sorrki za nazwę tematu ale nie mam pojęcia jak nazwać mój problem.
-Omen-
Mały błąd się wdarł

  1. SELECT k.imie, k.nazwisko, p.imie, p.nazwisko FROM opiekunowie k JOIN uczniowie p ON o.id_ucznia=u.id;


powinno być

  1. SELECT k.imie, k.nazwisko, p.imie, p.nazwisko FROM opiekunowie k JOIN uczniowie p ON k.id_ucznia=p.id;
-Omen-
Dobra widzę że namieszałem sporo smile.gif

Teraz jest już wszystko poprawnie. Jeśli jakiś moderator mógłby przenieść poprawioną wersję do 1 postu, usunąć 2 i 3 byłbym bardzo wdzięczny,

Witam wszystkich

Mam problem z zapytaniem do bazy MySql.

Mam 2 tabele:

1. Kierownicy - przechowuje dane o kierowniku: id(autoincrement), imię, nazwisko, pomocnik1, pomocnik2, pomocnik3, pomocnik4, pomocnik5
2. Pomocnicy - przechowuje dane o pomocnikach: id(autoincrement), imię, nazwisko, adres, itd.

Pomocnik1,...,pomocnik5 zawierają odpowiednie id(pomocników) z tabeli Pomocnicy.

I teraz moje pytanie w jaki sposób pobrać z bazy informacje o kierownikach i przydzielonych im pomocnikach?

Napisałem takie zapytanie:

  1. SELECT k.imie, k.nazwisko, k.login, p1.imie, p1.nazwisko, p2.imie, p2.nazwisko, p3.imie, p3.nazwisko, p4.imie, p4.nazwisko, p5.imie, p5.nazwisko FROM kierownicy k, pomocnicy p1, pomocnicy p2, pomocnicy p3, pomocnicy p4, pomocnicy p5 WHERE k.id=p1.id AND k.id2=p2.id AND k.id3=p3.id AND k.id4=p4.id AND k.id5=p5.id;


Zwraca mi baza to co jest mi potrzebne jednak z małym ale wyświetla tylko tego kierownika który posiada 5 pomocników.
Żeby działało poprawnie dodałem do bazy do tabeli pomocnicy pomocnika o id 0. Aktualnie wyświetla to co powinien. Jednak zastanawiam się czy jest możliwość aby można było wyświetlać to co jest mi potrzebne ale bez konieczności dopisania do tabeli pomocnicy id 0?

Jeśli ktoś ma pomysł jak to zrobić to będę bardzo wdzięczny za pomoc. Bardzo możliwe że istnieje jakieś "lepsze" zapytanie do bazy aby uzyskać interesujący mnie wynik. Jeśli tak to prosił bym o nakierowanie czego mam szukać, bo jak na razie to nie mam żadnego pomysłu.

Korzystając z okazji mam pytanie odnośnie różnicy między tymi zapytaniami:


  1. SELECT k.imie, k.nazwisko, p.imie, p.nazwisko FROM kierownicy k, pomocnicy p WHERE k.id=p.id;



  1. SELECT k.imie, k.nazwisko, p.imie, p.nazwisko FROM kierownicy k JOIN pomocnicy p ON k.id=p.id;



Jedno i 2 zapytanie zwracają te same dane. Czy jest jakaś zasada kiedy jakiego używać?
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.