Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> trudne zapytanie
ktuvok
post
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 sad.gif A ja mam MySQL 4.0.16.

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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 05:31