Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Łączenie tabel, 1:1:1:1:n
ShadowD
post
Post #1





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Sytuacja wygląda następująco, mam tabele z podstronami i kilka podrzędnych np. status lub dane do seo i do tego momentu joinLeft działa znakomicie chciał bym teraz pobrać wszystkie komentarze dla danej podstrony, ale udaje mi się pobrać tylko pierwszy. :-( Całość generowana jest w zend'zie, ale to nie ma znaczenia, zapytanie wygląda następująco:
  1. SELECT `page`.`name`, `page`.`template`, `page`.`title`, `page`.`value`, `page`.`comment`, `status`.`statusName`, `status`.`statusActive`, `seo`.`seoTitle`, `seo`.`seoDescription`, `seo`.`seoKeywords`, `seo`.`seoNoFollow`, `seo`.`seoNoIndex`, `comment`.`commentCreateTime`, `comment`.`commentValue` FROM `page` LEFT JOIN `pageStatus` AS `status` ON page.idStatus = STATUS.statusId LEFT JOIN `pageSeo` AS `seo` ON page.idSeo = seo.seoId LEFT JOIN `pageComment` AS `comment` ON page.id = comment.commentIdPage WHERE (page.name='name')


Mam nadzieję, że jest czytelne, problemy nie ma i wszystko działa tylko jak zmusić to zapytanie do pobrania WSZYSTKICH komentarzy, a nie tylko pierwszego - może nie ma takiej opcji?

Edit:
Wszystko działa tak jak powinno jednak (wybierałem pojedynczy rekord), tylko teraz mam spory nadmiar danych mianowicie tyle ile komentarzy tyle mam razy dane o podstronie + kolejny komentarz, tutaj wychodzi brak znajomości mysql i nie wiem jak to połączyć by dane o podstronach były raz a komentarze tak jak by kolejno w tablicy.

Ten post edytował ShadowD 25.04.2012, 01:18:40
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
toffiak
post
Post #2





Grupa: Zarejestrowani
Postów: 395
Pomógł: 80
Dołączył: 24.08.2009

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


Najłatwiej będzie to osiągnąć rozbijając zapytanie na dwa zapytania: jedno pobierające stronę i informację z nią związane i drugie pobierające same komentarze dla strony.
Go to the top of the page
+Quote Post
ShadowD
post
Post #3





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Takie rozwiązanie jest najłatwiejsze, ale czy najbardziej eleganckie i wydajne? (IMG:style_emoticons/default/snitch.gif)

Nie skupiam się w tym projekcie na odwaleniu roboty a doszlifowaniu wszystkiego do granic możliwości.
Go to the top of the page
+Quote Post
alegorn
post
Post #4





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

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


w mysql inaczej tego nie osiagniesz.

ale np w mongoDB - bez problemu.

j.
Go to the top of the page
+Quote Post

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: 24.08.2025 - 13:39