Select in mai multe tabele

Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
claUdiu
Mesaje:313

Select in mai multe tabele

Buna, am si eu o problema...Adica..nu cred ca e problema, dar na.

Deci. Vreau sa fac un site cu logare si inregistrare. Am facut totul. Dar userul se logheaza cu emailul. Ok si pana aici e bine. Dar...vreau sa fk si un panou de control (user panel) pentru site iar mie imi trebuie numele userului si dupa aia sa extrag mai multe date din diferite tabele.

Deci..problema acuma vine...Trebuie sa scriu intr-un fisier vreo 5 interogari pentru a extrage date din diferite tabele..Aici vreau sa va intreb...nu exista o metoda incat sa nu mai scriu atata ...sau...cv asemanator?

Ms mult:)
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
Poti selecta coloane din mai multe tabele in acelasi query. De exemplu:

Cod: Selectaţi tot

SELECT table1.field, table2.field2 FROM table1, table2, WHERE table1.field=table2.field2 AND table2.field2='value'
De asemenea mai e si instructiunea JOIN, oricum, astfel de select-uri devin mai complicate si deseori apar probleme de sintaxa, de logica a interogarii.
Depinde de structura bazei de date si ce anume vrei sa selectezi.
Cauta pe net "mysql select multiple tables", o sa gasesti destule exemple.

claUdiu Mesaje:313
Imi pot iexplica te rog frumos putin codul acela? CA eu nu prea l-am inteles...
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
Codul acesta:

Cod: Selectaţi tot

SELECT table1.field, table2.field2 FROM table1, table2, WHERE table1.field=table2.field2 AND table2.field2='value'
- selecteaza coloana "field" din tabel1 si coloana "field2" din tabel2, returneaza randurile cu "field" din tabel1 unde valoarea din "field" (in tabel1) este egala cu cea din "field2" (din tabel2), iar din tabel2 returneaza unde "field2" egal cu'valoare'.

claUdiu Mesaje:313

Cod: Selectaţi tot

SELECT table1.field, table2.field2 
FROM table1, table2, 
WHERE table1.field=table2.field2 AND table2.field2='value'
Dar...daca selectez intai de FROM tabelul: table1.field atuncea dece mai selectez tabelul dupa FROM?
Si...dupa WHERE?

O sa incerc sa fac un ex aici:

Cod: Selectaţi tot

SELECT carti.nume_carte, autori.nume 
FROM carti, autori, 
WHERE carti.nume=autori.nume AND autori.nume='numele_carti'
Din exemplu de sus ar trebui sa selecteze numele din carti, nu? Dar nu prea inteleg... Adica....mie la autori.nume imi tre numele carti..si cum il pot avea daca nu fac un o operatie while?
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje:4343
Nu ma prea pricep la astfel de lucruri cu MySQL.
Dar cum am specificat, se pot face tot felul de Select-uri complexe, in sensul asta a fost acel exemplu, nu ca o solutie.
Sunt pe net exemple, articole despre Select-uri imbricate, sau cu JOIN, sau UNION, si altele, cauta pe net sau vezi prin documentatia de la MySQL: http://dev.mysql.com/doc/refman/5.5/en/select.html" target="_blank
Bineinteles ca pot fi cazuri cand trebuie mai mult de un Query sa obtii ce vrei, dar eu is cam nepriceput in astea.

Subiecte similare