Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Relacja OneToMany, unikanie wielokrotnego powtarzania wyniku przy JOIN
...
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 1.10.2006

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


Witam.
Prawdę mówiąc nie jestem specjalnie zaznajomiony ze składnią SQL, a postanowiłem zabrać się za optymalizację.

Mam dwie tabele posts i comments. Chciałbym w jednym zapytaniu pobrać dane od tabeli posts gdzie id=1 oraz wszystkie komentarze dla tego postu.
Użyłem zapytania:
  1. SELECT *
  2. FROM `posts`
  3. LEFT OUTER JOIN `comments` ON comments.posts_id = posts.id
  4. WHERE posts.id =1

Wiem, że skoro optymalizuję to powinienem zamienić * na całą strukturę, ale dałem tak dla uproszczenia.

Co chcę uzyskać?
  1. post => array('title' => 'sth', 'body' => 'sth),
  2. comments => array(array(), array(), array() )
  3. )

Gdzie w każdej tablicy w 'commets' są wyniki komentarza jak autor i treść.

Pewnie przesadzam i wygodniej po prostu będzie skorzystać w 2 zapytań, no ale nie zaszkodzi zapytać (IMG:style_emoticons/default/winksmiley.jpg)
Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
prachwal
post
Post #2





Grupa: Zarejestrowani
Postów: 171
Pomógł: 18
Dołączył: 13.03.2009
Skąd: lublin

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


warto się nauczyć SQL-a
w tym konkretnym przypadku to trochę bez znaczenia, ale jak byś miał np. policzyć ile komentarzy ma każdy post w podziale na miesiące w zestawieniu rocznym -> jedno zapytanie SQL na marginesie, to warto się przesiąść z PHP do konstrukcji SQL-owych
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: 7.10.2025 - 23:24