[SQL] Optymalizacja zapytania, dynamiczne WHERE

0

Witam,
Posiadam taki kod:

$query_result = mssql_query("SELECT [ILOSC], [ID_MAGAZYNU], [ID_TOWARU] FROM [dbo].[AKT_STAN_MAG]");
while ($row = mssql_fetch_assoc($query_result))
{       
    $query_result2 = mssql_query("SELECT [CENA_ZAKUPU] FROM [dbo].[CENY_TOWAROW] WHERE [ID_TOWARU] = ".$row['ID_TOWARU']."");
    $row2 = mssql_fetch_assoc($query_result2);
    $wartosc = $row['ILOSC'] * $row2['CENA_ZAKUPU'];
    $sumawartosci += $wartosc;
}

Czy można jakoś zoptymalizować powyższy kod?
Tabele te mają pierwsza około 50k rekordów, a druga tak około 7 razy więcej.
Policzenie sumy wartosci dla 50 rekordów to kilka sekund, a ja mam ich przecież 50k.

0
$query_result = mssql_query("SELECT SUM(asg.ILOSC * ct.CENA_ZAKUPU) AS WARTOSC FROM dbo.AKT_STAN_MAG asg INNER JOIN dbo.CENY_TOWAROW ct ON ct.ID_TOWARU");
$row = mssql_fetch_assoc($query_result)
$sumawartosc = $row['WARTOSC'];
0

Dzięki, działa wyśmienicie tylko poprawiłem końcówkę z:
ON ct.ID_TOWARU
na ON ct.ID_TOWARU = asg.ID_TOWARU
bo coś parser burczał.

0

@up - Rzeczywiście tak powinno być. Gdzieś mi się zagubiła ta część zapytania.

0

ewentualnie USING

1 użytkowników online, w tym zalogowanych: 0, gości: 1