Salut J'ai une base de données simple pour stocker l'amitié, avec seulement deux colonnes person_a, person_b, indiquant que person_a et person_b sont amis. A partir d'une grande liste comme celle-ci, quelle requête devrais-je lancer pour avoir dire à tous les amis de 'sam'. Je vous remercie.MySQL Comment sélectionner les amis d'une table d'amitié?
3
A
Répondre
3
Utilisez un UNION:
SELECT person_b
FROM friendship
WHERE person_a = 'sam'
UNION
SELECT person_a
FROM friendship
WHERE person_b = 'sam'
0
Vous pourriez vouloir essayer quelque chose comme
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
1
Peut-être essayer comme ça,
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"];
}
Questions connexes
- 1. Table des amis MySQL
- 2. Aide de structure de table amis MySQL?
- 3. Facebook sélectionner les amis et UIDs poste à URL personnalisée
- 4. Requête mysql pour sélectionner les valeurs inférieures d'une table
- 5. en sélectionnant d'une table mysql (amis) et en ordonnant les résultats par champs d'une autre table (utilisateurs)?
- 6. php MySql QUERY pour les relations avec les amis Aide sur la table
- 7. comment sélectionner les lignes de la table
- 8. Procédures stockées MySql: Comment sélectionner une table de procédure?
- 9. Comment sélectionner les meilleurs votes dans MySQL?
- 10. MySQL Sélectionner toutes les colonnes d'une table et certaines d'une autre table
- 11. Obtenir des données amis dans mysql
- 12. MySQL sélectionner de sélectionner?
- 13. MySQL sélectionner les mieux notés
- 14. Comment sélectionner une ligne de la table?
- 15. MySql Sélectionner une requête
- 16. Optimisation mysql, sélectionner multiple pour sélectionner simple
- 17. requête mysql, deux sélectionner
- 18. mysql sélectionner dans une table en fonction de la table dans laquelle les données sont
- 19. Sélectionner à partir de la table mysql WHERE field = '$ array'?
- 20. Comment sélectionner les cinq plus grand nombre mysql
- 21. liste de tous les amis
- 22. verrouiller une table pour read permet encore de sélectionner (mysql)
- 23. Comment sélectionner ceci dans mysql?
- 24. MySQL: Comment sélectionner toutes les lignes d'une table SAUF la dernière
- 25. Comment sélectionner tous les parents d'un noeud dans une table mysql hiérarchique?
- 26. Comment sélectionner les détails correspondants de la table requête mysql égale à la date actuelle
- 27. Comment sélectionner ces lignes spécifiques dans MySQL?
- 28. nom de la table passe MySQL pour curseur sélectionner
- 29. Comment sélectionner le résultat souhaité dans MySQL?
- 30. Sélectionner l'entrée la plus récente d'une table MySQL jointe
Comment sont stockées des amitiés? Si 'sam' et 'baz' sont des amis, est-ce que 'sam' person_a ou person_b? –
Peut-être la vraie question est, les amitiés sont-elles réflexives? Quelqu'un peut-il être mon ami, mais je ne suis pas leur ami? –
Peut-être que vous devriez utiliser deux enregistrements pour une amitié, voir ici: http://stackoverflow.com/questions/2910134/friendship-database-schema. Au fait et @David Smith: une amitié non-réflexive n'existe pas. Ce n'est pas un ami, c'est un fan! –