miro20
19.05.2009, 20:27:55
Witam , mam tabele w mysql z danymi odnoszacymi sie do innych tabel np:
tabela_dane : id,nrosoby , nradresu
w tych polach nr osoby nr adresu sawpisywane numery id z tablic "osoby" , "adresy"
i teraz chcialbym po wyszukaniu np jakiedos danego id lub puli id z tabeli dane aby mi sie wyswietlilo w jednym wierszu np :
Imie , nazwisko , dom , ulica , miasto
Tabela osoby -> imie , nazwisko
Tabela adresy -> dom , ulica , miasto
tworze dwa zaputania do mysql na podstawie nrosoby i nradresu , przypisuje te dane do tablic i za pomoca foreach moge wyswietlic albo osoby albo adresy , niestety niemoge wyswietlic w jednym wierszu tabeli wartosci zosoby i adresy .
Nie wiem niestety czy jasno to opisalem
nospor
19.05.2009, 20:29:48
Cytat
tworze dwa zaputania
po co? O left join w mysql nie slyszal?
miro20
20.05.2009, 00:18:42
No tak , tyle ze nrosoby , nradresu nie jest ta sama wartoscia moje zapytanie mniejwiecej by tak wygladalo
Kod
$query="select * from dane where id ='3' "; // id nie jest auto increment mozna to np przyrownac do np kodu woj.
i np wyszly by mi 3 wyniki
$row['nrosoby']=1 $row['nradresu']=4
$row['nrosoby']=3 $row['nradresu']=2
$row['nrosoby']=2 $row['nradresu']=10
petla for ()
$query="select from osoby where id = $row['nrosoby'.] ";
wynik oczywiscie jeden tablica danych (imie.nazwisko.jakiestam)
$query="select from adresy where id= $row['nradresu']";
czy w tymprzypadku left join bedzie dobry ?
nospor
20.05.2009, 06:15:40
Cytat
czy w tymprzypadku left join bedzie dobry
No tak, wlasnie do tego left join sluzy.
SELECT * FROM dane d
LEFT JOIN osoby o ON d.nrosoby=o.id
LEFT JOIN adresy a ON d.nradresu=a.id
WHERE id =3
I tym oto sposobem dla danego rekordu z tabeli DANE pobrales dodatkowo konkretne wartosci z dwoch pozostalych tabel.
Przenosze, bo z Gotowymi rozwiązaniami to nie ma powiazania zadnego
miro20
20.05.2009, 10:24:39
Ok , dzieki sprobuje to wykorzystac jak pomoze to nie zapomne dodac pomogl

, a o left join slyszal jakies 4 lata temu ale mozg nie uzywany zanika