Tabela 1:
U_ID - KREDIT
1 - 3
2 - 1
3 - 0
4 - 2
Tabela 2:
P_ID - U_ID
1 - 1
2 - 1
3 - 1
4 - 1
5 - 2
6 - 2
7 - 3
8 - 4
O cemu se radi... iz prve tabele trebam za svaki U_ID da proverim koliko kredita ima, a zatim da iz druge tabele za svaki U_ID iz prve uzmem onoliko P_ID koliko kredita svaki U_ID ima... i da to bude odradjeno sa sto manje upita...
Znaci rezultat bi u ovom slucaju bio sledeci:
Za U_ID 1 imao bih P_ID 1, 2 i 3, za U_ID 2 imao bih P_ID 5, za U_ID 3 nema rezultata i za U_ID 4 imao bih P_ID 8.
Sto znaci da ako imam vise podataka u drugoj tabeli nego kredita za taj U_ID u prvoj onda uzima samo onoliko koliko kredita ima... ili ako imam manje nego kredita, onda uzima ono sta ima... ako je kredit 3, a u drugoj tabeli imam 2 upisa, onda ce uzeti ta 2...
Ono kako ja to znam da uradim, a sto mi se ne svidja jeste da preko prvog upita uzmem vrednosti U_ID i P_ID, a zatim da kroz petlju dok ima rezultata ponavljam drugi sql upit koji ce da uzima onoliko vrednosti iz druge sa LIMIT koliko ima kredita gde je U_ID prve = U_ID druge tabele...
To nije problem ako u prvoj tabeli imam 4-5 upisa... to su 5 ili 6 sql upita... ali je problem ako imam 200 ili 1000, onda je to 201 ili 1001 upit... a to je vec mnogo... pa me zanima da li to moze drugacije da se napise, a da dobijem ovo sto mi je potrebno?
Drugi nacin jeste da preko jednog upita selektujem U_ID i broj kredita, a onda da preko drugog pokum SVE sto je u drugoj tabeli i onda da uzmem samo onoliko koliko mi treba... sto opet ne valja ako u drugoj tabel imam par desetina hiljada upisa...
Hvala unapred
[Ovu poruku je menjao NenadS dana 17.07.2007. u 17:34 GMT+1]