Se da situatia urmatoare:
$bucati[$row['id_user']] = $row['nr_bucati'];
(poate fi 1 user cu X bucati sau pot fi mai multi fiecare cu bucati diferite)
Se cere sa se extraga din baza de date din tabelul anunturi pentru
fiecare id_user anunturile acelui user dar nu mai mult de nr_bucati existente la fiecare (chiar daca id_user are mai multe)
Se poate face asta dintr-o singura interogare sau trebuie o bucla cu select separat pe fiecare?
Cum e mai optim - o singura interogare sau bucla cu select separat?
In cel mai rau caz se va face cache la tot si se va citi informatiile din cache.
Ajutor optimizare interogare [rezolvat]
Moderatori: Zamolxe, Moderatori
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
Ajutor optimizare interogare [rezolvat]
Ultima oară modificat Vin Iul 01, 2011 8:48 pm de către Birkoff, modificat 1 dată în total.
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
- Birkoff
- Senior Member
- Mesaje: 6380
- Membru din: Joi Mar 18, 2004 2:34 pm
- Localitate: Bucuresti
- Contact:
ok si ai idee cum sa compun sintaxa? ca nu stiu cum sa fac ca sa extrag pentru fiecare userid numarul specificat de anunturi (nr_bucati)
deci mie pentru urmatoarele valori din array
$bucati[1] = 5;
$bucati[2] = 2;
$bucati[3] = 1;
ar trebui selectul sa imi returneze 5 anunturi care apartin id-ului 1, 2 care apartin id-ului 2 si 1 care apartin id-ului 3
nu am idee cum sa fac limitarea asta la select dintr-o sintura interogare...
deci mie pentru urmatoarele valori din array
$bucati[1] = 5;
$bucati[2] = 2;
$bucati[3] = 1;
ar trebui selectul sa imi returneze 5 anunturi care apartin id-ului 1, 2 care apartin id-ului 2 si 1 care apartin id-ului 3
nu am idee cum sa fac limitarea asta la select dintr-o sintura interogare...
1) )
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
2)
3) (open source)
4) Vrei un magazin virtual la cheie, usor de folosit, cu api-uri incluse pentru maximizarea vanzarilor si multe alte facilitati? Da un semn si discutam.
singura solutie cred ca este un union din toate sql-urile mici
select * from (
select * from table where user_id = $user_id order by col limit 0,$nr_bucati_user
union
select * from table where user_id = $user_id order by col limit 0,$nr_bucati_user
union
select * from table where user_id = $user_id order by col limit 0,$nr_bucati_user
...
) as tb
si query-urile "mici" din union generate din php pe baza array-ului
si neaparat index pe user_id
select * from (
select * from table where user_id = $user_id order by col limit 0,$nr_bucati_user
union
select * from table where user_id = $user_id order by col limit 0,$nr_bucati_user
union
select * from table where user_id = $user_id order by col limit 0,$nr_bucati_user
...
) as tb
si query-urile "mici" din union generate din php pe baza array-ului
si neaparat index pe user_id
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 3 vizitatori


