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;
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