[MySQL] Join probleempje

Pagina: 1
Acties:

  • flexje
  • Registratie: September 2001
  • Laatst online: 25-05 16:51

flexje

got-father

Topicstarter
Hey fellas, ik heb een databeestje (icm php) met daarin:
tabel users:
- user_id
- username
- etc

tabel buddy:
- user_id
- buddy_id

Nu wil ik aan de hand van de user_id, bijvoorbeeld user_id '21', de buddy namen van de buddy's krijgen.
En de usernames van de buddy's moeten uit de tabel users gehaald worden dmv de buddy_id...

Ik heb het een en ander geprobeerd maar ik kom er (met 1 query) niet uit.
Zo lukt het mij wel:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        $query_buddy = "SELECT buddy_id FROM buddy WHERE buddy.user_id = '$UserID'";
        $resultBuddy = mysql_query($query_buddy);

        if(mysql_num_rows($resultBuddy)) {
            while($rsBuddy = mysql_fetch_array($resultBuddy)) {
                $buddyid = $rsBuddy["buddy_id"];
        
                $query_buddy2 = "SELECT users.username FROM users WHERE users.user_id = '$buddyid'";
                $resultBuddy2 = mysql_query($query_buddy2);
    
                while($rsBuddy2 = mysql_fetch_array($resultBuddy2)) {
                    $buddy_name = $rsBuddy2["username"];
                    echo "<div class=\"row1\"><a href=\"users.php?user=$buddy_name\">&raquo; $buddy_name</a></div>";    
                }       
            }       
        }


Ik weet dat dit geen super oplossing is, maar het werkt tenminste wel.
Hoe krijg ik deze 2 queries hierboven tot 1 query.
Ik weet dat het met subqueries/joins moet maar ik kom er echt niet uit.

Dit heb ik al geprobeerd:
PHP:
1
2
3
4
5
$kwerrie_buddy = "SELECT username
                    FROM users
                    LEFT JOIN buddy
                    ON users.user_id = buddy.user_id
                    WHERE users.user_id = '" . $gegevens->user_id . "'";

[ Voor 9% gewijzigd door flexje op 13-04-2004 19:29 ]

"Try not to become a man of success but rather to become a man of value..."


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
En wat was het resultaat?

  • flexje
  • Registratie: September 2001
  • Laatst online: 25-05 16:51

flexje

got-father

Topicstarter
3x de username van de users.user_id

"Try not to become a man of success but rather to become a man of value..."


Verwijderd

Je zoekt dus alle buddies van 1 persoon. In dat geval zou ik zelf liever via de buddy table gaan selecteren

code:
1
2
3
SELECT u.id userid, b.id buddyid
FROM user u, user b, buddy buddy
WHERE buddy.id=u.id AND buddy.buddy=b.id AND buddy.id=1

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
PHP:
1
2
3
4
$query = "SELECT username
          FROM users
          LEFT JOIN buddy ON users.user_id = buddy.buddy_id
          WHERE buddy.users_id = '" . $gegevens->user_id . "'";

  • flexje
  • Registratie: September 2001
  • Laatst online: 25-05 16:51

flexje

got-father

Topicstarter
bigbeng schreef op 13 april 2004 @ 19:39:
PHP:
1
2
3
4
$query = "SELECT username
          FROM users
          LEFT JOIN buddy ON users.user_id = buddy.buddy_id
          WHERE buddy.users_id = '" . $gegevens->user_id . "'";
omfg _/-\o_ tnx :>

"Try not to become a man of success but rather to become a man of value..."

Pagina: 1