• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapytanie - sortowanie.

Object Storage Arubacloud
0 głosów
147 wizyt
pytanie zadane 6 lipca 2015 w SQL, bazy danych przez No Lime Gaduła (4,540 p.)

Mam problem z konstrukcją zapytania SQL. Mianowicie tworzę przycisk odpowiadający za sortowanie wszystkich głosów malejąco. Podobnie skonstruowałem zapytania odnośnie daty dodania. 

SELECT * FROM mieszkania ORDER BY data LIMIT 0,5

Tu nie ma problemu bo pobiera wszystko a nie jedno na podstawie warunku WHERE.

I teraz chciałbym stworzyć coś takiego w przypadku ocen które mam w innej tabeli. Mam coś takiego 

"SELECT AVG(rate) AS RateAvg, COUNT(rate) AS RateCount  FROM rate WHERE id_post ='$id'

Zdaje sobie sprawę, że wsadzenie tu ORDER BY nie zadziała ponieważ każde takie zapytania wyciąga jeden rekord. No dobra, ale jak posortować w takim razie  te oceny skoro wszystko to jest w innej tabeli?  Czy pójść w kierunku INNER JOIN ? Czy może jest inny sposób ? Z góry dziekuje za każdy concept !

1 odpowiedź

+1 głos
odpowiedź 6 lipca 2015 przez rafal.budzis Szeryf (85,260 p.)
Ale po co posortować ? może tobie chodzi o grupowanie ? wtedy miało by to jakiś sens. Powiesz cokolwiek o tabelkach jakie masz bo dałeś 2 zapytania nie powiedziałeś nic o powiązaniach i nie wiem jak ci najlepiej pomóc. Nie staraj się na siłe wykonywac jaknajmniej zapytań czasem bardziej optymalniej wykonać 2 mniejsze zapytania bo na mniejszy okres czasu rekordy w tabeli są blokowane.
komentarz 6 lipca 2015 przez No Lime Gaduła (4,540 p.)
Proszę bardzo. Tabelka rate : http://prntscr.com/7pjz85 (klucz z inkrementacją to idrate)

                             Tabelka mieszkania: http://prntscr.com/7pjzp9 (tutaj kluczem z inkr. jest id)

Tworzę sortowanie dla potencjalnego użytkownika. Aby mógł posortować mieszkania według oceny, daty i tym podobne. Tyle, że wartości takie jak ocena mieszkania mam w innej tabeli.
komentarz 6 lipca 2015 przez rafal.budzis Szeryf (85,260 p.)
SELECT id_post as id, AVG(rate) AS RateAvg, COUNT(rate) AS RateCount  FROM rate GROUP BY id_post ORDER BY RateAvg LIMIT 0,5

dzięki temu wyciągniesz 5 ID które musisz pobrać potem tak

SELECT * FROM mieszkania WHERE id in (1,2,3,4,5)

tak chyba bedzię najłatwiej ale ja bym poszedł w strone przeliczania średniej po oddaniu głosu zamaist liczyć wszystkie średnei na nowo za każdym razem bo zabijesz serwer.

Podobne pytania

0 głosów
1 odpowiedź 190 wizyt
pytanie zadane 3 lipca 2015 w PHP przez No Lime Gaduła (4,540 p.)
0 głosów
1 odpowiedź 473 wizyt
pytanie zadane 21 czerwca 2017 w SQL, bazy danych przez BlvckFox Gaduła (4,240 p.)
0 głosów
1 odpowiedź 1,192 wizyt
pytanie zadane 25 lutego 2017 w SQL, bazy danych przez kacperl95 Obywatel (1,980 p.)

92,568 zapytań

141,424 odpowiedzi

319,634 komentarzy

61,956 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...