![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
A więc mam problem ze zbudowaniem zapytania.
Dwie tabele: uzytkownik (id) uzytkownik_dzieci (id, uzytkownik_id, wiek) W tabeli "uzytkownik_dzieci" mam informacje o dzieciach użytkowników: każdy rekord oznacza 1 dziecko danego użytkownika + wiek (nieistotny teraz). Czyli informację o liczbie dzieci przechowuje się w liczbie rekordów tej tabeli. I teraz mam zapytanie
I teraz moje zadanie polega na tym, że chciałbym pobrać użytkowników, którzy mają 2, 3 lub 4 dzieci czyli 2, 3 lub 4 rekordy w tej tabeli "uzytkownik_dzieci". Głowię się nad tym i niestety nie umiem tego rozwiązać. Będę wdzięczny za pomoc. Dodam jeszcze, że idealne byłoby dla mnie zrobienie tego manipulując zapytaniem za "WHERE", a nie przed - jestem w stanie zaakceptować zagnieżdżone zapytania. Ale oczywiście jeżeli trzeba manipulować całym zapytaniem to trudno. Zaznaczam to dlatego, że w rzeczywistości mam więcej joinowanych tabeli i już trochę klauzul WHERE, chciałbym to jakoś bezboleśnie dodać do zapytania. Bolesne byłoby nawet dodanie czegokolwiek za SELECT - teraz jest tam tylko uzytkownik.id Ten post edytował Foxx 6.07.2013, 21:27:53 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zakładając, że wybierasz wszystkie kolumy z tabeli `uzytkownik`:
Póki co masz tam tylko kolumnę id. Jeśli tak zostanie, to w sumie nie musisz w ogóle robić JOIN, bo wystarczy działać na tabeli `uzytkownik_dzieci`, która też posiada id użytkownika (rodzica dziecka). |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 896 Pomógł: 76 Dołączył: 15.11.2003 Skąd: Sosnowiec/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Dzięki.
Mam w tabeli więcej kolumn poza id, pominąłem je w przykładzie żeby było prościej - ale kolumny są i potrzebuję ich. Dlatego robię ten JOIN. W międzyczasie stwierdziłem, że jednak nie mogę wstawić żadnej dodatkowej kolumny poza .id za klauzulą SELECT bo musiałbym przerobić mechanizm odbierający wyniki z tego zapytania, który nie jest zbyt elastyczny. Rozwiązałem problem tworząc dodatkowe pole, do którego przeliczam liczbę dzieci i przechowują ją dodatkowo jako liczbę. Dzięki za pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 18:41 |