Ceci est la requête:Mysql SELECT que des valeurs uniques dans une colonne lorsque joint à gauche avec une autre table
SELECT a.id, a.userName,if(o.userId=1,'C',if(i.userId=1,'I','N')) AS relation
FROM tbl_users AS a
LEFT JOIN tbl_contacts AS o ON a.id = o.contactId
LEFT JOIN tbl_invites AS i ON a.id = i.invitedId
ORDER BY relation
Cela renvoie la sortie comme suit:
+----+--------------+-------------+
| ID | USERNAME | RELATION |
+----+--------------+-------------+
| 1 | ray | C |
+----+--------------+-------------+
| 2 | john | I |
+----+--------------+-------------+
| 1 | ray | N |
+----+--------------+-------------+
Je dois enlever la troisième ligne à partir de la requête select en vérifiant si possible que l'identifiant est en double. La priorité est la suivante:
C -> I -> N. Donc, car il existe déjà un « rayon » avec un C, je ne veux pas à nouveau avec un I ou N.
J'ai essayé d'ajouter distincts (a.id) mais ça ne marche pas. Comment puis-je faire cela?
Pourquoi DISTINCT ne fonctionne-t-il pas pour cela?
Que voulez-vous faire avec la relation? Il y a deux relations différentes pour '1 rayon C/N' C et N. Êtes-vous sûr de vouloir jeter cette 3ème rangée? –
oui je suis sûr. La priorité est la suivante C -> I -> N. Donc, s'il y a un C avec un userID alors je ne veux pas un N avec ce même ID utilisateur –
Pouvez-vous m'aider mane? Tout avis sera le bienvenu. –