Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Interogare sql in tabele multiple
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
Birkoff



Data înscrierii: 18/Mar/2004
Mesaje: 2287
Locație: Bucuresti

Trimis: Sâm Dec 11, 2004 10:01 pm    Titlul subiectului: Interogare sql in tabele multiple  

Salut

M-am lovit de o problema si nu stiu daca se poate face...
Daca am sa zicem intr-o baza de date 2-3 tabele numite tabel1, tabel2, tabel3 si vreau sa execut o singura interogare in diferite campuri din fiecare tabel se poate face asta printr-un singur query? Daca da, vreau si eu un exemplu de cod ca am incercat mai multe variante da nu merg...

Ceva de genul
an style="color: #000000"><?php SELECT * FROM tabel1 AND SELECT * FROM tabel2; 
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Dum Dec 12, 2004 12:44 am    Titlul subiectului:  

Depinde de ce anume vrei sa faci. La modul general, un SELECT pe mai multe table se numeste JOIN.

De exemplu:

SELECT * FROM table1, table2, table3;

...dar asta iti va aduce toate combinatiile posibile de inregistrari din cele trei tabele (produs cartezian se numeste :) ). Cu alte cuvinte, daca table1 are 2 inregistrari, table2 are 3 inregistrari si table3 are 4 inregistrari... rezultatul va avea 2*3*4 inregistrari, toate combinatiile posibile intre inregistrarile celor 3 tabele.

Daca vrei sa limitezi query-ul numai la anumite combinatii de inregistrari, poti folosi conditii, de genul:

SELECT * FROM table1, table2 WHERE table2.id=table1.id;

...query care iti va intoarce numai combinatiile intre inregistrari care satisfac conditia.

La modul explicit, query-ul de mai sus se poate scrie ca:

SELECT * FROM table1 INNER JOIN table2 ON table2.id=table1.id;

Mai departe cauta pe net, s-au scris carti intregi despre join-uri si este partea care face din bazele de date relationale mai mult decat un container performant de date. Cuvinte cheie: SQL, JOIN...

Numa' bune.
Sus  
Birkoff



Data înscrierii: 18/Mar/2004
Mesaje: 2287
Locație: Bucuresti

Trimis: Dum Dec 12, 2004 2:09 am    Titlul subiectului:  

Da, multumesc, de JOIN nu auzisem pana acum pentru ca nu mi-a trebuit asa ceva pana acum, da o sa studiez ce ai scris tu si caut eu mai multe detalii ca acum stiu ce trebuie sa caut...
Sus  
ExcalIbvr



Data înscrierii: 02/Mai/2004
Mesaje: 1107
Locație: Oradea

Trimis: Dum Dec 12, 2004 8:24 am    Titlul subiectului:  

Se poate chiar si mai simplu, dar cum zicea si arond, depinde de ce anume vrei sa faci.
an style="color: #000000"><?php SELECT table1.camp1, table1.camp2, table2.camp1, table2.camp2, table2.camp3 FROM table1, table2 
Atunci cand ai o relationare one-to-many (de exemplu), instructiune cheie in interogare este GROUP BY.
Sus  
mihnea sim



Data înscrierii: 20/Aug/2004
Mesaje: 149
Locație: Alexandria

Trimis: Dum Dec 12, 2004 10:32 am    Titlul subiectului:  

ca o nota:
-daca nu ma insel se poate realiza ceva si cu UNION. Merita si asta studiat..
Sus  
Radical



Data înscrierii: 16/Feb/2004
Mesaje: 327
Locație: Bucuresti

Trimis: Lun Dec 13, 2004 1:43 pm    Titlul subiectului:  

mihnea sim a scris: ca o nota:
-daca nu ma insel se poate realiza ceva si cu UNION. Merita si asta studiat..

Cred ca UNION este cel mai aproape de ce vrea el.

UNION se poate face pe 2 tabele pe coloane de acelasi tip... numele coloanelor din primul tabel vor da numele coloanelor din rezultat...

Tabele pot diferi... dar in acest caz trebuie selectate numai anumite coloane...

Multa bafta... tot inainte... si apropo... in MySQL 4.1.7 exista si sub-query-uri... merita incercat... scuteste un JOIN ... poate chiar 2 !
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community