MySQL Как выбрать друзей из таблицы дружбы? - PullRequest
3 голосов
/ 21 апреля 2010

Привет, у меня есть простая база данных для хранения дружбы, с двумя столбцами person_a, person_b, обозначающими, что person_a и person_b являются друзьями. Из большого списка, подобного этому, какой запрос я должен выполнить, чтобы получить все друзья «sam». Спасибо.

Ответы [ 3 ]

3 голосов
/ 21 апреля 2010

Используйте СОЮЗ:

SELECT person_b
FROM friendship
WHERE person_a = 'sam'
UNION
SELECT person_a
FROM friendship
WHERE person_b = 'sam'
1 голос
/ 21 апреля 2010

Может быть попробовать вот так,

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"];
}
0 голосов
/ 21 апреля 2010

Возможно, вы захотите попробовать что-то вроде

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...