Rezultate 1 la 5 din 5

Subiect: Inner join mysql cu care ma chinui de 2 zile

  1. #1
    Avatarul lui Cristi G
    Cristi G este deconectat Membru SeoPedia
    Reputatie:
    49
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    33
    Posturi
    1.664
    Putere Rep
    49


    Implicit Inner join mysql cu care ma chinui de 2 zile

    Structura bazei de date :
    Cod PHP:
    Tabelul users contine fieldurile ID si Nume
    Tabelul prieteni contine fieldurile ID1 si ID2 
    Sa spunem ca am urmatoarele valori :
    Cod PHP:
    Users :
    1 FinalDestiny
    2 Obama

    Friends 
    :
    1 2 
    Deci 1 e prieten cu 2.

    Intrebarea mea intrebatoare este : Cum afisez eu in loc de : 1 este prieten cu 2 , FinalDestiny este prieten cu Obama.

    Sa iau dintr-un singur query numele celor 2 si sa-l afisez.

    Va rog frumos sa ma ajutati ca am intrebat peste tot si tot nu am aflat cum e
    Imi ocup timpul uneori cu pariuri sportive si fac si web development WordPress.

  2. #2
    Avatarul lui Daniel
    Daniel este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    21st May 2008
    Locaţie
    Bucuresti(pt moment)
    Posturi
    493
    Putere Rep
    36


    Implicit

    Cod:
    SELECT `u1`.`nume`,`u2`.`nume`
    FROM `friends` AS `f`
    LEFT JOIN `users` AS `u1` ON `u1`.`id`=`f`.`ID1`
    LEFT JOIN `users` AS `u2` ON `u2`.`id`=`f`.`ID2`

  3. #3
    Avatarul lui Cristi G
    Cristi G este deconectat Membru SeoPedia
    Reputatie:
    49
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    33
    Posturi
    1.664
    Putere Rep
    49


    Implicit

    am pus pe stackoverflow si la fel mi-au dat .

    Totusi, ca sa nu raman si eu idiot, ce e u1 ? eu nu am u1.nume ..ce e u2 ? de unde u2.nume ?
    Imi ocup timpul uneori cu pariuri sportive si fac si web development WordPress.

  4. #4
    Avatarul lui hyperionXS
    hyperionXS este deconectat Membru SeoPedia
    Reputatie:
    32
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    39
    Posturi
    93
    Putere Rep
    32


    Lightbulb

    Citat Postat în original de FinalDestiny Vezi Post
    am pus pe stackoverflow si la fel mi-au dat .

    Totusi, ca sa nu raman si eu idiot, ce e u1 ? eu nu am u1.nume ..ce e u2 ? de unde u2.nume ?
    Sunt aliasuri. fara ele, codul ar fi aratat astfel:
    Cod:
    SELECT `users`.`nume`, `users`.`nume`
    FROM `friends` AS `f`
    LEFT JOIN `users` ON `users`.`id`=`f`.`ID1`
    LEFT JOIN `users` ON `users`.`id`=`f`.`ID2`
    Dar mysql ti-ar fi dat eroare, pentru ca `users`.`id` era ambiguu, mysql nestiind la care tabela `users` sa se 'uite', din cele 2 LEFT JOIN'uri.
    Si atunci este imperativ sa ai aliasuri, astfel incat sa precizezi clar la care LEFT JOIN te referi cand faci conditiile de legatura ON.

    Si acum observ o greseala minora in codul initial (depinde cum folosesti rezultatul mai departe). Ar fi indicat sa ai aliasuri si la numele pe care le preiei. Mysql, intr-adevar, iti returneaza doua coloane, fiecare cu numele 'nume'.
    Dar daca le preiei cu php, e posibil sa se suprascrie o coloana cu cealalta si sa ramai doar cu o singura coloana, deoarece au aceeasi cheie. (in php nu poti avea doua chei identice intr-un vector)
    Astfel incat cea mai buna varianta ar fi
    Cod:
    SELECT `u1`.`nume` AS 'nume_prim',`u2`.`nume` AS 'nume_secund'
    FROM `friends` AS `f`
    LEFT JOIN `users` AS `u1` ON `u1`.`id`=`f`.`ID1`
    LEFT JOIN `users` AS `u2` ON `u2`.`id`=`f`.`ID2`

  5. #5
    Avatarul lui ibaldazar
    ibaldazar este deconectat Membru SeoPedia
    Reputatie:
    35
    Data înscrierii
    18th June 2007
    Locaţie
    falticeni
    Vârstă
    45
    Posturi
    214
    Putere Rep
    35


    Implicit

    dar daca vrei sa-ti facem capul calendar

    select concat(nume_prim,"e prietenar cu",nume_secund) as ma_dau_deshtept from (SELECT `u1`.`nume` AS 'nume_prim',`u2`.`nume` AS 'nume_secund'
    FROM `friends` AS `f`
    LEFT JOIN `users` AS `u1` ON `u1`.`id`=`f`.`ID1`
    LEFT JOIN `users` AS `u2` ON `u2`.`id`=`f`.`ID2`)
    compara preturi si viziteaza forumul wow romania

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. PHP/MySQL afisare inregistrari care incep cu litera X
    De Iulian în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 19th July 2010, 07:04
  2. downtime 4 zile
    De Ammadeuss în forumul Metode de promovare, Analiza trafic.
    Răspunsuri: 13
    Ultimul Post: 23rd February 2009, 16:40
  3. Ne reauzin in 20 de zile
    De Marius Mailat în forumul Bar, lobby...
    Răspunsuri: 6
    Ultimul Post: 3rd August 2007, 20:50
  4. You're the best? Join the best!
    De guest în forumul Locuri de munca
    Răspunsuri: 6
    Ultimul Post: 31st October 2006, 18:22
  5. De La 90 De Zile Pentru Adsense Referrals, La 180 De Zile
    De Cristian Mezei în forumul Adsense
    Răspunsuri: 2
    Ultimul Post: 1st March 2006, 22:24

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •