![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Witam, musze pierwszy raz w zyciu prosic o pomoc bo juz nie mam do tego cierpliwosci, co znalazlem to mi niewiele pomoglo i nie bardzo kumam co i jak wiec prosze o gotowy przyklad:p Mam tabele: pokoje (id, nazwa) i pokoje_online (id, id_pokoju, id_kto) i potrzebuje posortowac pokoje wedlug ilosci osob z tabeli pokoje_online, jednak jak w pokoju bedzie 0 wynikow to tez ma je wyswietlic, z gory dzieki
-------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
SELECT po POKOJE
LEFT JOIN na POKOJE_ONLINE GROUP BY Z POKOJE.ID ORDER BY Z COUNT(POKOJE_ONLINE.ID) ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Dzieki ale cos podobnego z left joinem juz sam probowalem i nie zwraca zadnych wynikow:S
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Widac źle probowales
![]() Pokaż swój -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
no i wyswietla gdy dam sortowanie bez count() i w tym wlasnie problem, probowalem tez z inner join i as ale bez efektow, pierwszy raz mnie cos przeroslo:D -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
no ale po LEFT JOIN należy podać jeszcze "ON zlączenie"
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Tez juz mialem ale zawsze zero wynikow gdy jest count(). Juz probowalem chyba wszystkiego, takie cos tez nic nie daje
Ten post edytował ciekawskiii 19.02.2011, 13:03:38 -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A mi Twoje zapytanie działa.
Pokaż moze strukturę tabel oraz dane. Zapytanie jest ok. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Wszystkie pola id mam typu int, w tabeli pokoje mam jeszcze pole nazwa typu varchar i mam 3 pokoje w tej tabeli, czat dziala wiec baza raczej nie ma nic do tego. Kiedys z tym count tez sie bawilem i tez wtedy nie dzialalo, moze chodzi o typ int?
-------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Czego nie zrozumiałeś w zdaniu:
"Pokaż moze strukturę tabel oraz dane." ? Powtarzam: zapytanie jest ok. Wstawiłem dokładnie Twoje zapytanie do moich danych testowych - działa. Może więc coś jest z Twoją tabelą i Twoimi danymi - nie wiem, nie chcesz tego pokazać. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
tabela pokoje:
id | nazwa 1 | pierwszy 2 | drugi 3 | trzeci Tabela pokoje_online: id | id_pokoj | id_kto | czas Wszystkie pola id to int a nazwa i czas to varchar. Ten post edytował ciekawskiii 19.02.2011, 13:47:12 -------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Poproszę przykładowe dane z twojej bazy.
Najlepiej w postaci insertow, które skopiuje i wkleje do siebie. Podobnie ze strukturą tabel. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Tylko w jakim celu? Ja tez powtarzam ze czat dziala, mam w kazdym pokoju podglad osob w danym pokoju, mam trzecia tabele z postami w danym pokoju i wszystko dziala wiec to nie ma nic do rzeczy
-------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Czy chat operuje na zapytaniu co podales? Nie, więc działa
![]() Powtarzam po raz ostatni: zapytanie jest ok. Dla pewnosci wykonałem je na moich danych testowych - działa. Tyle mam do powiedzenia. Skoro nie chcesz pomocy już w tej kwesti to kończymy temat ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Nie, ale dowodzi, ze tabele sa w porzadku a dane zapisywane sa prawidlowo. Zapytanie fakt, dziala ale bez sortowania count(b.id_pokoj) tyle, ze to ja juz wiedzialem zanim zalozylem temat
-------------------- |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Na samym początku tego wątku napisałeś, że interesuje Cię liczba osób w danym pokoju. Dlatego z tabeli pokoje_online (czyli "b") odczytuj nie "gołe" b.id_pokoj, ale count(b.id_pokoj). Reasumując, zmień kwerendę na:
Różnica jest taka, że w pierwotnej redakcji za pokoje, które nie miały korespondujących rekordów w pokoje_online Twoja kwerenda zwraca NULL, natomiast powyższa kwerenda (z count(...)) zwraca 0. Sprawdź np. pod phpMyAdmin'em - u mnie chodzi, oczywiście sam odczyt z bazy danych. A może skrypt na Twojej stronie nie reaguje poprawnie, gdy z bazy dostanie wartość NULL? |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Cos podobnego wlasnie z AS juz probowalem (ORDER BY liczba chyba?) tak czy inaczej, teraz dalej zero wynikow czy w pokoju ktos jest czy nie.
Dzieki valdi, zadzialalo z ORDER BY liczba DESC Ten post edytował ciekawskiii 19.02.2011, 16:11:51 -------------------- |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 107 Pomógł: 30 Dołączył: 19.02.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cos podobnego wlasnie z AS juz probowalem (ORDER BY liczba chyba?) tak czy inaczej, teraz dalej zero wynikow czy w pokoju ktos jest czy nie Rzeczywiście, w ORDER BY może być "liczba" (jest czytelniej). A co do "zerowych" wyników: Czy wartości w polu pokoje_online.id_pokoj mają swoje "odpowiedniki" w tabeli "pokoje"? Inaczej - czy dane w pokoje_online odwołują się do istniejących rekordów w tabeli pokoje? Nawiasem mówiąc, zabezpieczeniem aby tak było jest zdefiniowanie FOREIGN KEY w pokoje_online. Robiąc testy dot. Twojego przypadku zdefiniowałem tabelę następująco:
Wówczas sama baza danych nie dopuści do wstawienia do pokoje_online odwołań do nieistniejących pokoi. Wykonaj taką kwerendę:
Dostaniesz w wyniku dane, które podana przez Ciebie kwerenda próbuje pogrupować. Zobaczysz co "wyciągasz" z bazy (dane niezgrupowane). Może to będzie dla Ciebie jakiś ślad co jest źle? Ten post edytował Valdi_B 19.02.2011, 16:28:00 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Valdi wielkie dzieki za chec pomocy ale juz dziala tak jak chcialem, w tym zapytaniu z Twojego pierwszego posta wkradla mi sie literowka a jak poprawilem i dalem samo sortowanie wedlug liczby to wszystko gra, nigdy nie uzywalem tego foreign key ale w tym przypadku raczej nie ma potrzeby;) jeszcze raz dzieki
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 20:32 |