Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zliczanie i sumowanie
acztery
post
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

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


mam kłopot z relacją. Mysql dziwnie sie zachowuje mimo tego, że oczekuje czego innego.

mam takie zapytanie:

  1. SELECT * , SUM( ifnull( documents.count, 0 ) ) AS CtrDocuments, count( ifnull( documents.Id, 0 ) ) AS CountDocuments, SUM( ifnull( count, 0 ) ) AS SumDocuments, cat.Title AS Title, cat.Id AS Id, cat.UserId AS UserId, cat.sort AS sort
  2. FROM `cat` LEFT JOIN `documents` ON `documents`.`Cat` = `cat`.`Id`
  3. LEFT JOIN `user` ON `user`.`user_id` = `cat`.`UserId`
  4. WHERE (
  5. cat.Lang = 'ddd'
  6. ) AND (
  7. documents.Lang = 'ddd'
  8. ) AND (
  9. cat.Parent = '0'
  10. )
  11. GROUP BY cat.Id
  12. ORDER BY cat.sort DESC LIMIT 0, 30


pobiera liste kategori i liczy ile w danej jest rekordów i sumuje kolumne count. Na chwile obecna działa tylko wtedy gdy jest jakis element w danej kategori ale jak nie ma zamiast pokaza 0 to go nie wyswetla mimo tego ze mam LEFT. RIGHT i INNER tak samo

Pod zapytania niewchodzą w gre. Kilka z was moze zdziwic ze 2 razy podaje jezyk dla roznych tabel ale inaczej nie działa :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
mwojcik
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 22.07.2007

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


To dziwne, ze zapytanie nie zwraca tego co trzeba - a moze w tabeli 'documents' w polu 'cat' wszystkie pola sa powiazane z polem 'id' w tabeli 'cat' (czyli LEFT JOIN dziala tak jak OUTER JOIN bo nie ma zadnych "krotek wiszących" = czyli kazdy wpis w kolumnie 'cat' w tabeli 'documents' ma swoj odpowiednik w kolumnie 'id' w tabeli 'cat') ?
Co do struktury to rozwiązanie wg. mnie z trzymaniem stringa jako klucza, zeby wydobyc jezyk jest nie do konca optymalne.
Mozesz sprobowac przemodelowac tak baze, zeby nazwy kategorii i dokumentow umieszczac w innych tabelach w odpowiednich jezykach i polaczyc je za pomoca klucza obcego.
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: 5.10.2025 - 01:23