Peut-être que la déclaration n'est pas très claire, alors vous y allez.
Nous avons une table mysql où nous avons des colonnes comme ceci: Je veux écrire une instruction SELECT où nous sélectionnerons J'ai essayé du cas, mais il sélectionne également le champ user_id code> et action pour le même
user_id CODE> Où Action est
Receect_Content CODE> mais la sortie finale ne contient pas
réception_content code> de sorte que la sortie est la suivante: p>
Receive_Content CODE> que je veux exclure. P> p>
3 Réponses :
Vous pouvez utiliser un sortie: p> démo sur dbfiddle p> p> P> Existe code> clause pour vérifier qu'un
user_id code> a un
active_content code> action, puis vérifiez également que l'action
code> pour chaque ligne n'est pas
réception_content code>:
Hey merci Nick, pour la réponse rapide, cela a fonctionné. Vous demandera d'autres améliorations si nécessaire, est-ce que ça va?
@ 0Decimal0 Pas de problème. Si les améliorations sont majeures, vous devriez probablement vous poser une autre question, mais autrement heureux de répondre.
Essayez d'utiliser la requête intérieure:
select a.user_id, a.action from table a join table b on b.user_id = (select b2.user_id from table b2 where b2.action = "receive_content" and b.user_id = b2.user_id) where a.action <> "receive_content"
Vous devez rejoindre la table avec lui-même, après la ligne de filtrage que vous souhaitez conserver et sélectionner des colonnes que vous souhaitez.
La solution peut être cette requête: P>
select a.user_id,a.action from actions a join actions b on a.user_id = b.user_id and a.id !=b.id where b.action='receive_content' and a.action != 'receive_content'