Cela devrait être très simple, mais je suis coincé dessus et je n'ai pas trouvé la réponse ici.MYSQL sélectionnez le compte (*) dans une table si l'ID existe dans une autre table
Je veux compter le nombre d'enregistrements dans une table qui correspondent à un user_id
donné si ce user_id
existe dans une autre table, ou si elle ne renvoie pas -1.
Quelque chose comme:
SELECT COUNT(*)
FROM table_1
WHERE user_id = (IF EXISTS table_2.user_id = '22')
, ELSE -1;
En résumé, si table_2
contient une user_id
de 22, puis retourne le nombre d'enregistrements dans table_1
avec un user_id
de 22 ans, ou sinon, le retour -1.
Comment est-ce que je fais ceci? (. NB Pour préciser, user_id
n'est pas une clé primaire dans les deux tables)
EDIT: ajouter l'échantillon de table:
table_1
---------------------
user_id | item
---------------------
22 | apple
23 | orange
22 | banana
table_2
---------------------
user_id | name
---------------------
20 | billy
21 | bob
22 | thornton
donc d'exécuter la requête que j'ai besoin avec user_id = 21
renverrait 0
, en cours d'exécution avec user_id = 22
renverrait 2
et avec user_id = 23
renverrait -1
.
Pouvez-vous fournir des exemples de données et les résultats souhaités? Votre demande n'a aucun sens pour moi. Vous avez une comparaison dans 'where' et vous dites que quelque chose renvoie' -1'. –