Am 2 tabele: post si post_vote_security .
Tabla post are: id,titlu,voturi,user
Tabla post_vote_security are: post_uniq_id,post_id,post_user,post_ip
Si sa zicem ca am in "post" : 1,Ana are mere,2, George
Si in "post_vote_security" : 1,1,George,192.168.1.1 si 2,1,Vasile,444,121,12,21
Cum fac sa accesez amandoua tabele dar sa nu mi se dubleze posturile, pentru ca in momentul de fata daca folosesc ""select * from post inner join post_vote_security on post.id = post_vote_security.post_id"" postul respectiv mi se dubleaza de cate ori este votat. Poate am gandit gresit baza de date sau ceva nu inteleg.
Sau sa fac query separat? "$sql=mysql_query("SELECT * from post"); $sql2=mysql_query("SELECT * from post_vote_security"); " ? doar ca asa nu stiu cum sa bag in acelasi while si datele din $sql si $sql2 (trecand peste $show1=mysq_fetch_array($sql) bla bla)
Multumesc.
selectare din 2 tabele
Moderatori: Zamolxe, Moderatori
-
toxicristi
- PHPRomania Supporter
- Mesaje: 26
- Membru din: Vin Apr 26, 2013 6:10 pm
Re: selectare din 2 tabele
Cred ca query-ul tau da acelasi rezultat ca inner join-ul lui woody man (implicit inner join).
@woodyman : query-ul pe tabelul post da un singur rand per post, iar cel pe post_vote_security da mai multe sau niciun rand per post. Trebuie sa te hotarasti ce vrei sa obtii de la acel query : ori un singur rand per post (cu eventual o suma de voturi ptr fiecare, caz in care folosesti GROUP BY), ori o lista de voturi care contine si detalii despre post , caz in care e normal sa primesti mai multe randuri cu acelasi coloane din entitatea post.
Folosind query-ul asa cum l-ai dat, nu vei returna nici posturile care exista in post, dar care nu au voturi (banuiesc ca nu vrei sa se intample asa).
@woodyman : query-ul pe tabelul post da un singur rand per post, iar cel pe post_vote_security da mai multe sau niciun rand per post. Trebuie sa te hotarasti ce vrei sa obtii de la acel query : ori un singur rand per post (cu eventual o suma de voturi ptr fiecare, caz in care folosesti GROUP BY), ori o lista de voturi care contine si detalii despre post , caz in care e normal sa primesti mai multe randuri cu acelasi coloane din entitatea post.
Folosind query-ul asa cum l-ai dat, nu vei returna nici posturile care exista in post, dar care nu au voturi (banuiesc ca nu vrei sa se intample asa).
| |
Re: selectare din 2 tabele
@toxicristi, ai dreptate, mi-a scapat.
GROUP BY trebuie folosit cu o functie (sum(), count() etc.) iar woodyman are nevoie de datele din tabele nu de rezultatele functiei. Cum as vedea folosit GROUP BY este de facut GROUP BY pe fiecare tabela si apoi un INNER JOIN intre rezultate sau rulat query-ul propus de mine si apoi facut GROUP BY.
GROUP BY trebuie folosit cu o functie (sum(), count() etc.) iar woodyman are nevoie de datele din tabele nu de rezultatele functiei. Cum as vedea folosit GROUP BY este de facut GROUP BY pe fiecare tabela si apoi un INNER JOIN intre rezultate sau rulat query-ul propus de mine si apoi facut GROUP BY.
Re: selectare din 2 tabele
Da este acelasi rezultat
.
Da in post_vote_security pot fi mai multe rezultate sau chiar nici unul ( in functie daca cineva a votat sau nu ).
Eu vreau sa afisez rezultatele din post iar daca postului respectiv, Vasile a votat si el este logat pe contul lui (daca sesiunea "Vasile" exista ) sa apara mesajul "VOTED".
Oarecum eu trebuie sa selectez cele 2 tabele:
1. tabelul "post" sa-l afisez
2. tabelul "post_vote_security" sa-l am "deschis" ,pentru a vedea daca userul (care a votat la postul 1 ) este identic cu sesiunea pentru a afisa mesajul corect, voted sau vote up.
Se intelege ce zic?
Am urcat si o poza
Da in post_vote_security pot fi mai multe rezultate sau chiar nici unul ( in functie daca cineva a votat sau nu ).
Eu vreau sa afisez rezultatele din post iar daca postului respectiv, Vasile a votat si el este logat pe contul lui (daca sesiunea "Vasile" exista ) sa apara mesajul "VOTED".
Oarecum eu trebuie sa selectez cele 2 tabele:
1. tabelul "post" sa-l afisez
2. tabelul "post_vote_security" sa-l am "deschis" ,pentru a vedea daca userul (care a votat la postul 1 ) este identic cu sesiunea pentru a afisa mesajul corect, voted sau vote up.
Se intelege ce zic?
Am urcat si o poza
-
toxicristi
- PHPRomania Supporter
- Mesaje: 26
- Membru din: Vin Apr 26, 2013 6:10 pm
Re: selectare din 2 tabele
Da, fix asta imi trebuia, merge perfect! Multumesc mult !! Meriti o bere
, am cautat de mi-a venit rau ca sa rezolv treaba asta. 
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 11 vizitatori