tags:

views:

64

answers:

4

Hi I have a simple database for storing friendship, with just two columns person_a, person_b , denoting that person_a and person_b are friends. From a big list like this what query should I run to get say get all friends of 'sam'. Thank you.

+2  A: 

Use a UNION:

SELECT person_b
FROM friendship
WHERE person_a = 'sam'
UNION
SELECT person_a
FROM friendship
WHERE person_b = 'sam'
Mark Byers
A: 

You might want to try something like

SELECT  *
FROM    users u INNER JOIN
        (
            SELECT  CASE
                        WHEN person_a = yourid THEN
                            person_b
                        ELSE person_a
                    END person_id
            FROM    FRIENDSHIPS
            WHERE   person_a = yourid
            OR      person_b = yourid
        ) myFriends ON u.userID = myFriends.person_id
astander
A: 

May be try like this,

SELECT person_a, person_b
FROM friendship
WHERE person_a = 'sam' or person_b = 'sam'

Use the query like this, after that 

if(person_a=='sam') {
   $frnd = $rowfetch["person_b"];
} else if(person_b=='sam') {
   $frnd = $rowfetch["person_a"];
}
Karthik