Je m'excuse pour le titre vague. J'essaie d'écrire une requête qui renvoie une colonne alias avec des valeurs correspondantes (résultant d'un IN) ainsi qu'une colonne d'alias avec des valeurs qui ne correspondent pas (en utilisant NOT IN). Je veux que le jeu de résultats ait: userId | matchs | non-concordances. J'ai actuellement la requête suivante qui renvoie les correspondances comme prévu. Je ne parviens pas à obtenir les non-appariements dans le jeu de résultats - qui est, d'un pas dans la déclarationCombinaison IN et NOT IN dans SQL comme résultat unique
SET @userId = 9;
SELECT ug.user_id, COUNT(DISTINCT goal_id) as matches
FROM user_goal ug
WHERE [email protected]
AND goal_id IN (SELECT iug.goal_id FROM user_goal iug WHERE [email protected])
GROUP BY user_id ORDER BY matches DESC LIMIT 4
Ainsi, le PAS ressemblerait à quelque chose comme ceci:
goal_id NOT IN(SELECT uggg.goal_id FROM user_goal uggg WHERE [email protected]) AS nonmatches
Je suis tout simplement pas vous comment incorporer le PAS dans ma déclaration requête si je reçois tous les résultats
Je ne suis pas sûr que je comprends ce que vous entendez par "fixer un param", pouvez-vous m'expliquer? – RyanLynch
il suffit de vérifier si l'objectif retourné appartient à l'utilisateur, puis définissez la valeur à "1" sinon placez-le à "0" et la valeur définie peut avoir l'alias "x" afin que vous puissiez les regrouper par user_id, x –
Je ne comprends pas répondre. – Jodrell