Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z zapytaniem do 2 tabel, i wybraniem listy wszystkich pol
Mion
post
Post #1





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Mam dwie tabele i duży problem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
hottoplista ] id | nazwa_serwisu | adres_www
statysytka_dzienna ] ids | dzien | suma_odslon

Tabela [hottoplista] przechowuje dane tyczące serwisu www.
Tabela [statysytka_dzienna] przechowuje ilość odsłon (suma_odslon) serwisu (id=ids) w danym dniu (dzien) Do tej tabeli są dodawane te serwisy które w danym dniu miały conajmnej jedną odsłonę.

Wykonanie zapytania:
  1. SELECT h.id, s.ids, s.suma_odslon, s.dzien
  2. FROM hottoplista h LEFT JOIN statysytka_dzienna s ON h.id = s .ids
  3. WHERE s.dzien='2006-07-03';

Zwraca mi rekordy serwisów które występują w tabeli statysytka_dzienna czyli miały w danym dniu conajmnij jedną odsłonę.

Jak powinno wyglądać zapytanie które wybrało by wszystkie rekordy z tabeli hottoplista powiązane z statysytka_dzienna nawet te nie występujące w statysytka_dzienna. Czyli żeby powstała pełna lista serwisów. A tym które nie miały w danym dniu jeszcze odsłony (suma_odslon) można było by przypisać suma_odslon=0 lub NULL
Mam nadzieję, że nie opisałem tego zbyt zawile.
Proszę o pomoc->Dziękuję
ps. dostępna wersja mysql to: MySQL - 4.1.19-log

Ten post edytował Mion 3.07.2006, 11:07:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. SELECT h.id, s.ids, s.suma_odslon, s.dzien
  2. FROM hottoplista h LEFT JOIN statysytka_dzienna s ON h.id = s .ids
  3. WHERE s.dzien='2006-07-03' OR s.ids IS NULL
Go to the top of the page
+Quote Post
Mion
post
Post #3





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


Dziękuję, ale niestety coś jest nie tak.
Tabela: [hottoplista] zawiera 656 rekordów natomiast podane przez Kolegę zapytanie zwraca tylko 403 rekordy czyli nie wybierane są wszystkie rekordy z tabeli [hottoplista]
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




aaa, no tak...
  1. SELECT h.id, s.ids, s.suma_odslon, s.dzien
  2. FROM hottoplista h LEFT JOIN statysytka_dzienna s ON (h.id = s.ids AND s.dzien='2006-07-03')
Go to the top of the page
+Quote Post
Mion
post
Post #5





Grupa: Zarejestrowani
Postów: 105
Pomógł: 6
Dołączył: 7.03.2005

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


O to chodziło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Wielkie dźwięki dla Kolegi

Kolejny problem z tym zapytaniem... Mianowicie jak powinno wygladać zapytanie aby wybrać TYLKO rekordy z danej kategorii czy dodatkowa kolumna (INT)kategoria w tabeli hottoplista Obecne zapytanie wygląda tak:
  1. SELECT h.id, h.kategoria, s.ids, s.suma_odslon, s.dzien
  2. FROM hottoplista h LEFT JOIN statysytka_dzienna s
  3. ON (h.id = s.ids AND s.dzien='2006-07-04)
  4. ORDER BY s.suma_odslon DESC


Jeśli dodam w klauzuli ON (h.id = s.ids AND s.dzien='2006-07-04' AND h.kategoria='11') nie uzyskuje porażadanego efektu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

/** PO CHWILI **/
Już wiem należy dodać warunek:
ON (h.id = s.ids AND s.dzien='2006-07-04) WHERE h.kategoria='11'

Ten post edytował Mion 4.07.2006, 16:33:10
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: 23.08.2025 - 20:35