![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 0 Dołączył: 30.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam następującą strukturę danych:
Tabala Klienci: IDKlienta Imie Nazwisko Tabela Pozyczki: IDPozyczki Kwota DataUdzielenia Tabela PozyczkiKlientow: ID IDKlienta IDPozyczki (jeden klient może mieć wiele pożyczek, jedną pożyczkę może wziąć więcej niż jedna osoba) Robię zapytanie, które zwróci mi w kolejnych wierszach pożyczki spełniające określone kryteria. Napisałem tak: Kod SELECT Pozyczki.IDPozyczki, Pozyczki.Kwota,
CONCAT_WS(' ', Klienci.Nazwisko, Klienci.Imie) AS NazwaKlienta FROM Pozyczki, Klienci, PozyczkiKlientow WHERE Klienci.IDKlienta = PozyczkiKlientow.IDKlienta AND Pozyczki.IDPozyczki = PozyczkiKlientow.IDPozyczki AND ... ORDER BY Pozyczki.IDPozyczki; ale pożyczki, do których przypisano więcej niż 1 klienta, wyświetlają się podwójnie - w osobnych rekordach. Otrzymuję więc: IDPozyczki | Kwota | Klient 1 | 1000 | Nowak Jacek 1 | 1000 | Kowalski Robert 2 | 5000 | Kos Ludwik a chciałbym: IDPozyczki | Kwota | Klient 1 | 1000 | Nowak Jacek, Kowalski Robert 2 | 5000 | Kos Ludwik Próbowałem z GROUP BY IDPozyczki, ale zwraca mi tylko pierwszy rekord. Jest co prawda funkcja GROUP_CONCAT, ale dostępna dopiero od MySQL 4.1 ![]() Osobna sprawa to to, że chciałbym rówież WYSZUKIWAĆ po nazwisku klienta (teraz mogę), więc nie bardzo mam jak pobierać go w osobnym zapytaniu. Czy ma ktoś na to wszystko pomysł? Pozdrawiam, Krzysiek |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 05:31 |