J'ai une table avec une telle structure:Réécriture avec les sous-requêtes MySQL LEFT JOIN
- uid
- sid
tous les entiers. Cette table simule l'amitié entre deux utilisateurs.
Tout ce que je veux faire est de trouver de tels enregistrements qui existent seulement dans une direction.
Par exemple: Je souhaite trouver le nombre d'enregistrements ayant t1.u_id = 15, lorsqu'il n'y a pas d'enregistrements ayant t2.s_id = 15 et t2.u_id = t1.s_id.
Donc, cette relation entre deux ID n'existe qu'une seule fois.
Il m'a semblé que j'ai réussi à écrire la requête correcte avec des sous-requêtes, mais j'ai ensuite commencé à réécrire la requête en utilisant la jointure gauche pour augmenter la vitesse et maintenant ... ça ne marche pas.
Ma requête droite est maintenant:
SELECT * FROM `friends` AS f1 LEFT JOIN `friends` AS f2
ON f1.user_id = f2.friend_id
WHERE f1.friend_id=15 AND f2.user_id IS NULL
mais cela ne fonctionne pas. S'il vous plaît aider.
NB. J'utilise mysql 5, donc je ne peux pas utiliser la commande EXCEPT et toutes les autres bonnes choses.
expliquer * comment * il ne fonctionne pas? dossiers qu'il trouve qu'il ne devrait pas ou vice versa? – ysth