Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: left join - pytanie
Forum PHP.pl > Forum > Bazy danych > MySQL
Robert007
Witaj,

Zastanawiałem się gdy używam LEFT JOIN to ile razy sortuje jeżeli znajdzie 3 pasujące wpisy i który wpis mi pokaże?
nospor
to moze zamiast się zastanawiac to byś to wykonał i się przekonał w praktyce...
Robert007
bo właśnie ja chcę jeden wpis z tabeli tej co daje LEFT JOIN ale nie wiem jak dać do tej tabeli sortowanie według liczby (sortowanie wiem jak dać ale nie wiem jak musi być w tym zapytaniu)

moje zapytanie:

Kod
SELECT t.*, p.post_data as topic_data FROM (php_topics t) LEFT JOIN (php_posts p) ON(p.topic_id = t.topic_id) WHERE t.forum_id = '.$forum_id
nospor
a co ty chcesz pobrac? Ostatni post w temacie?
To zacznijmy od tego ze masz złą strukturę. Najlepiej by bylo, jakbys w tabeli tematu trzymał id ostatniego posta. Pole to bys aktualizował na bieżąco jakby się zmieniały posty.

No ale jesli jednak nie chcesz zmieniac struktury to pobaw się "group by" oraz "having"
Robert007
właśnie że chciałem pobrać datę z pierwszego posta czyli najmniejsza data (date zapisuje w 'time'),

jak będzie wyglądało zapytanie z group ?
nospor
Cytat
jak będzie wyglądało zapytanie z group ?

Nie po to ci napisałem:
Cytat
No ale jesli jednak nie chcesz zmieniac struktury to pobaw się "group by" oraz "having"

by ci teraz od tak podać rozwiązanie smile.gif
Jak się pobawisz i nadal ci nie będzie wychodzić to służę pomocą. Do tego czasu się pobaw. Pamietaj ze jak nie będzie wychodzic to pokaz przykładowe zabawy bym zobaczył że się bawiłeś

ps: proszę tylko bez sprośnych skojarzeń winksmiley.jpg
Robert007
Cytat(nospor @ 14.12.2009, 21:41:28 ) *
ps: proszę tylko bez sprośnych skojarzeń winksmiley.jpg


nie no ja taki nie jestem tongue.gif

właśnie nasunełeś mi myśl by zrobić zapisywanie daty pierwszego postu - tematu do wpisu tematu chociaż to do końca nie będzie tak jak chciałbym.
nospor
Cytat
chociaż to do końca nie będzie tak jak chciałbym.
dlatego ci napisałem, byś się trochę pobawił a jak nie będzie ci wychodzić to pokaż jak się bawiłeś

ps: poraz kolejny proszę bez sprośnych skojarzeń. nie moja wina że polska język trudna język winksmiley.jpg
Robert007
no nie wiem jak to zrobić coś mi nie idzie za bardzo bo mam tak to wyświetla mi ten sam temat + kilka wpisów postów

Kod
SELECT t.*, p.post_data as topic_data2 FROM (php_topics t, php_posts p) WHERE t.forum_id = '.$forum_id.' GROUP BY p.post_data ORDER BY p.post_data DESC
nospor
Cytat
+ kilka wpisów postów
no bo nie doczytales na czym polega grupowanie. kiepsko sie bawiles winksmiley.jpg
pomine juz fakt ze nie zrobiles połączenia tabel co jest juz wogole karygodnym błędem

  1. SELECT t.*, min(p.post_data) AS topic_data2 FROM php_topics t LEFT JOIN php_posts p ON p.topic_id = t.topic_id WHERE t.forum_id = idzezmiennej GROUP BY t.topic_id
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.