izmenjeno 1 put, poslednji put NenadS 17.07.2007. u 17:34
Izmene poruke
- NenadS17.07.2007. u 17:34zapis iz teksta poruke
Pokusavam da resim ovaj problem tako sto cu upotrebiti sto manje sql upita ali za sada nisam nasao adekvatno resenje, pa mi je potrebna vasa pomoc...
Tabela 1:
Tabela 2:
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
Tabela 1:
Code:
U_ID - KREDIT
1 - 3
2 - 1
3 - 0
4 - 2
U_ID - KREDIT
1 - 3
2 - 1
3 - 0
4 - 2
Tabela 2:
Code:
P_ID - U_ID
1 - 1
2 - 1
3 - 1
4 - 1
5 - 2
6 - 2
7 - 3
8 - 4
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
Potpis
Pozdrav, NenadS!