J'ai un peu de mal à trouver une instruction SQL que je dois faire.MySQL - Problème de requête complexe, plusieurs tables
J'ai 2 tables
Amis
===================================
friendfromid | friendtoid | request
===================================
Utilisateurs
=================
userid | username
=================
Je dois obtenir le nom d'utilisateur et de userid chaque utilisateur qui est mon ami.
Mon identifiant est soit dans friendfromid ou friendtoid selon que l'utilisateur ou l'utilisateur me l'a demandé. Donc, fondamentalement, ce qui doit arriver est que le script doit regarder la table des amis, obtenir toutes les lignes où mon identifiant est friendfromid ou friendtoid vérifier que le champ de requête est défini sur 1, prendre toutes les lignes qui correspondent correspondre alors obtenir les identifiants et les noms d'utilisateur de chaque friendfromid ou friendtoid qui n'est pas le mien. Par exemple, si mon id était 8 et l'id des amis était 9, disons qu'ils m'ont demandé leur id serait dans le champ friendfromid et mon id serait dans le champ friendtoid, ce qui signifie que le script prendrait leur id (9) et le faire correspondre à cet utilisateur dans la table des utilisateurs.
Je pense que vous voulez dire '(friendfromid =? ET friendtoid = userid) OU (friendtoid =? ET friendfromid = userid) '. –
oui.? signifie dont la liste d'amis est requise. –
Ce que je veux dire c'est quand 'fromid' correspond' toid' est la clé étrangère et vice-versa. Votre condition de jointure entière est équivalente à '{ID} = userid'! –