Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Foreign keys i optymalizacja zapytan
Forum PHP.pl > Forum > Bazy danych > MySQL
pppspoonman
Witam smile.gif Jestem tu nowy i kilka rad mi sie przydalo. Mam jednak nadal problem, na ktory nie moge zanelzc odpowiedzi. A czuje, ze rozwiazanie jest bardzo proste, ale niestety nie wiem jak.

Mam prosty przypadek : dwie uproszczone tabele :
klient : id , nazwa
faktura : id, id_klienta, kwota (id_klienta to klucz obcy - jak id w tabeli klient.

Chce wyswietlic wyniki id faktury, NAZWA klienta i kwota. Pisze to w php i robie tak :
[php:1:42f8282aa5]$wszystkie=mysql_query("SELECT * FROM faktura");
while ($rekord=mysql_fetch_array($wszystkie))
{
echo $rekord["id"]
[/php:1:42f8282aa5]
i tu pojawia sie problem. Czy za kazdym razem musze wpisywac
[php:1:42f8282aa5]$nr_klienta=$rekord("id_klienta"];
$klient=mysql_fetch_array(mysql_query("SELECT nazwa FROM klient WHERE id=$nr_klienta"));
$klient=$klient["nazwa"];
echo $klient;
[/php:1:42f8282aa5]
zeby wyswietlic nazwe klienta? Przeciez chce tylko jedno pole z tabeli klient, do tego wiem, ze jest to powiazane kluczem obcym, a otrzymuje go tak "nieelegancko". Przy 10 nie zrobi mi to roznicy, ale przy wyswietalniu 1000 juz tak. Jak to zoptymalizowac?
spenalzo
[sql:1:fbb43dcbb3]SELECT f.id, f.kwota, k.nazwa FROM klient k LEFT JOIN faktura f ON (k.id=f.id_klienta)[/sql:1:fbb43dcbb3]
pppspoonman
Dzieki bardzo. Piekne rozwiazanie smile.gif Wlasnie przeczuwalem, ze to jest strasznie naokolo smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.