Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobrać rekordy o tej samej grupie
Forum PHP.pl > Forum > Bazy danych > MySQL
astropanic
Witam,
mam tabelę która posiada poza kolumnami trzymającymi dane, kolumnę zawierającą numer grupy typu int.
Jak pobrać maksymalnie 5 rekordów z tej tabeli o takim samym numerze grupy ? Wiem że można by korzystać z LIMIT i ORDER BY. Ale ten sposób nie zadziała jeśli mam np 4 rekordy o groupid=1 i 4 rekordy o groupid=2. Wtedy zostaną pobrane 4 rekordy z jednej grupy i jeden z pozostałej grupy. Zależy mi na tym żeby pobrać maksymalnie 5 rekordów, ale koniecznie o tej samej grupie. Więc w wymienionym wyżej przypadki baza powinna zwrócić 4 rekordy.

Jak ułożyć takie zapytanie ?

Pozdrawiam
DawidF
A próbowałeś w ogóle takie zapytanie ułożyć?

Bo Twój opis jest cokolwiek dwuznaczny... Piszesz, że chciałbyś pobrać 5 rekordów o takim samym numerze grupy, ale boisz się, żeby zapytanie nie "dociągnęło" sobie danych z innej grupy, jeśli tych rekordów znajdzie <5.
Otóż nie, nie zrobi nic ponad to, co jej nakażesz:

  1. SELECT * FROM test WHERE id=1 LIMIT 5


Jak widzisz, tutaj wyciągniemy maksymalnie 5 rekordów z tabeli 'test', w których 'id'=1.
I nic więcej.
astropanic
Przepraszam, ale ja nigdzie nie powiedziałem że pytam o konkretną grupę smile.gif
Jest mi wszystko jedno którą grupę wybierze. Gdyby id grupy było znane to rzecz jasna już warunek WHERE groupid ograniczył do danej grupy, a LIMIT 5 wybrał maksymalnie 5 rekordów, masz rację. Ale ja chcę pobrać rekordy o dowolnej grupie.
Wyobraż sobie że mam drugą kolumnę position typu int, I moje zapytanie brzmi : SELECT FROM sometable ORDER BY position ASC LIMIT 5. Jak w takim wypadku wybrać elementy o tym samym groupid ? smile.gif

Dzięki za wsparcie smile.gif

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.