![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 4.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]()
Post
#2
|
|
Grupa: Zablokowani Postów: 120 Pomógł: 2 Dołączył: 4.11.2004 Ostrzeżenie: (10%) ![]() ![]() |
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:
Jak widzisz, tutaj wyciągniemy maksymalnie 5 rekordów z tabeli 'test', w których 'id'=1. I nic więcej. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 4.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przepraszam, ale ja nigdzie nie powiedziałem że pytam o konkretną grupę
![]() 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 ? ![]() Dzięki za wsparcie ![]() Pozdrawiam |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:12 |