Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pytanie odnośnie "łączenia tabel" i zliczania
Poker
post
Post #1





Grupa: Zarejestrowani
Postów: 205
Pomógł: 3
Dołączył: 20.04.2009
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


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ę:

(IMG:http://www.podliski.pl/baza.jpg)

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ź.

Ten post edytował Daiquiri 7.08.2013, 08:58:35
Powód edycji: [Daiquiri]: usuwam dane ;-)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maly_swd
post
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


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:)

Ten post edytował maly_swd 12.07.2009, 22:42:50
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 18:44