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

mam takie pytańko, otóż czy da się za pomocą zapytania SELECT z LEFT JOIN utworzyć takie zapytanie by uzyskać z jednej tabeli wszystkie dane, a z drugiej ilosć rekordów o danym id?

Troche to niezrozumiale jest napisane więc przedstawie na przykładzie:

Mam system newsów i chciałem w jednym zapytaniu wyciągnąć z 2 tabel rekordy. Z 1 tabeli 'news' pola 'id', 'temat', 'tresc', a z drugiej 'comments' ilość rekordów gdzie 'news_id' jest równe polu 'id' z tabeli 'news'. Chodzi jeszcze o tożeby to wykonywało się tajakby na petli (ale bez niej).

P.S. Troche niejasno to napisałem, nie wiem jak to inaczej wytłumaczyć, mam nadzieje że się połapiecie.

Pozdrawiam, dex.
popbart
  1. SELECT tabela1.*,count(tabela2.id) AS ile
  2. FROM tabela1 LEFT JOIN tabela2 ON (tabela1.id=tabela2.id_tabela1)
  3. GROUP BY tabela1.id

Jak nie jesteś leniem, to przejrzyj temat przyczepiony.
Dex1987
Patrzyłem na ten temat i co prostrze przykłady to mi wychodziły, ale nie wiem jak to przenieść do mojego systemu newsów :/

Mam bazę table_news i w niej pola [n_id] [n_topic] i [n_content] oraz tabele table_comments i w nie pola [c_id] [c_content] i [c_n_id]. Pole [c_n_id] określa do którego newsa należy komentarz. i teraz chciałbym zeby wynik tego zapytania zwracał mi:

Kod
Temat newsa 1
Tresc newsa 1
Komentarze [ x ]
------------------
Temat newsa 2
Tresc newsa 2
Komentarze [ x ]


Probowałem coś z COUNT ale kompletnie tego nie rozumim :/

Z góry dzięki za pomoc, pozdrawiam dex.
SongoQ
Trudno osiagnac aby baza zwrocila taki wynik. Lepiej cos takiego:

1 przyklad:
temat newsa | tresc news | komentarz 1
temat newsa | tresc news | komentarz 2

2 przyklad:
to zwrocic osobno temat i tresc i do niego 2 zapytanie z komentarzami
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.