Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pytanie odnośnie "łączenia tabel" i zliczania
Forum PHP.pl > Forum > Bazy danych > MySQL
Poker
Witam:)

Specem w tej dziedzinie aż takim nie jestem dlatego potrzebuje waszej pomocy.

Chciałbym zrozumieć co nieco i spytać czy coś takiego jest w ogóle możliwe.

Otóż mam przykładową tabelę:



Jak widać połączone są ze sobą id_autora + utwory + pobrane , id_utworu + pobrane.

I teraz wyciągając z bazy POBRANE -> id_autora: 1 ; id_utworu:1 ; IP: 192.123.33.123 ; data: 11-07-2009

Chciałbym zapytać czy w zapytaniu łączyć tabele aby otrzymać wynik który odpowiadałby odpowiednio id_autora:1 = "imie:jan, nazwisko:kowalski, miejscowość:jaworzno itp" ?

Nie wiem czy tłumaczę to dobrze;>

Chodzi po prostu o to czy mając dane z tabeli utwory mogę stworzyć jakoś w mysql połaczenie tabel tak abym po pobraniu danych zPOBRANE mógł od razu wyświetlić dane autora i dane utwory.

W książce "PHP MYSQL :Vademecum Profesjonalisty" czytałem coś o index'ach ale, albo ja źle doczytałem albo nie było konkretnego wytłumaczenia jak to działa.


Drugie moje pytanie: czy jeśli chciałbym zliczyć ilość pobrań danego utworu to wystarczy używać COUNT? czy może jest coś szybszego ?


Z góry dziękuje za odpowiedź.
maly_swd
to pobierze Ci wszystkie utwory i przy kazdym z nich wypisze wykonawce
  1. SELECT * FROM utwory u
  2. JOIN wykonawcy w ON w.id=u.id_autora



to poda Ci to co wyzej z iloscia pobran danego utworu

  1. SELECT u.*, w.*, count(u.id) AS ile_pobran FROM utwory u
  2. JOIN wykonawcy w ON w.id=u.id_autora
  3. LEFT JOIN pobrane p ON p.id_utworu=u.id
  4. GROUP BY u.id


a to poda Ci to co wyzej ale tylko te utwory ktore byly pobrane chociaz 1 raz
  1. SELECT u.*, w.*, count(u.id) AS ile_pobran FROM utwory u
  2. JOIN wykonawcy w ON w.id=u.id_autora
  3. JOIN pobrane p ON p.id_utworu=u.id
  4. GROUP BY u.id


ps. w tabeli pobrania masz nadmiarowe dane tzn niepotrzebne id_autora
ps2. klepalem na szybko z palca wiec moglem walnac bleda:)
Poker
tą baze zrobiłem orientacyjnie chciałem tylko pokazać o co mi chodzi...


Czyli jak widze muszę jednak łączyć tabele, ale spróbuję pobawić się tym co mi napisałeś.


Pomogłeś mi. Bardzo dziękuje:)
maly_swd
Tak, trzeba zlaczeniami...
Wiesz mozesz bez zlaczen, ale to zajedziesz baze i bedziesz wynajdowal kolo:)
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.