Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapytanie złożone
pajaa1981
post
Post #1





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


Witam, mam pytanie jak napisać następujące zapytanie:

  1. SELECT * FROM (`users_items`) JOIN `items` ON `users_items`.`item_id` = `items`.`id` WHERE `player_id` = '1' AND `in_use` > 0 ORDER BY `pos` ASC


tak, by grupowało dodatkowo każdy rekord `users_items` jeśli występuje więcej niż jeden raz. Może być np. w ten sposób, że dodaje do każdego rekordu dodatkowe pole o nazwie `ilosc` i tam jest liczba występowania np. 1, 2, 3



"Pomógł" czeka.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
jaslanin
post
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


Problem z formułowałeś bardzo zawile, myślę że chodzi Ci o to by wyświetlić listę przedmiotów jakie ma użytkownik, dodatkowo podliczając ilość posiadanych przedmiotów tego samego typu.

Cytat
by grupowało dodatkowo każdy rekord `users_items` jeśli występuje więcej niż jeden raz

to co napisałeś jest trochę bezsensowne, bo każdy rekord może wystąpić tylko raz, tobie chodziło przecież o to żeby nie powtarzały się wartości w kolumnie item_id tabeli user_items (czyli chcesz grupować kolumnę item_id tabeli user_items, a nie rekord), prościej mówiąc by zamiast powtarzać tę wartość policzyć ilość wystąpień tej wartości.

Poza tym następnym razem dobrze by było gdybyś podał strukturę twojej bazy danych i przykładowe dane, co by ułatwiło sprawę.

Zapytanie które spełnia Twoje oczekiwania myślę że wygląda tak:

  1. SELECT *, count(item_id) ilosc FROM (`users_items`) JOIN `items` ON `users_items`.`item_id` = `items`.`id` WHERE `player_id` = '1' AND `in_use` > 0 GROUP BY item_id ORDER BY `pos` ASC


Ten post edytował jaslanin 2.04.2011, 16:57:12
Go to the top of the page
+Quote Post
pajaa1981
post
Post #3





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 16.01.2011

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


Działa cudownie. Wybacz, że słabo opisałem problem. Oczywiście obiecane "pomógł" daję.
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: 13.10.2025 - 00:52