bonjour , je veux faire une requête sql entre 3 tables en utilisant not in mais ma requête ne fonctionne pas .
j'ai trois tables : abonn_chat_maur, connexions et liste_noire_chat
Voici la structure de mes tables :
la table abonn_chat_maur représente la liste des abonnes du chat.
ref_abonn est la référence de l'abonné et statut=1 signifie qu'il est actif et 2 inactif.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ref_abonn statut pseudo 24 1 cam 25 1 diengkals 26 1 sello
La table connexions représente l'inscription d'un thème.
Nous avons 4 themes: 1 , 2 ,3 et 4 .
ref_abonn représente la référence de l'abonné , theme est le thème qu'il inscrit et statut= 1 veut dire qui est inscrit et si statut=2, ça veut dire qu'il descrit.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ref_conn ref_abonn theme statut 2 24 1 2 3 25 1 1 4 25 2 1 5 25 3 2 6 25 4 1 7 26 1 1 8 26 2 1 9 2 3 2 10 26 4 3
liste_noire_chat
La table liste_noire_chat représente la liste des abonnées bloqués.
Nous avons ref_abonne qui représente la référence des abonnés ; le champ ref_pseudo_bloque représente la référence de l'abonné bloqué et statut = 1 veut dire qu'il est débloqué et statut=2 qu'il est bloqué
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 ref_liste ref_abonne ref_pseudo_bloque statut 1 25 24 1 2 25 26 1 3 26 25 1 4 26 24 2
Je veux faire une requête qui affiche tous les abonnés inscrits dans les salons où je suis inscrit, tout en enlevant les abonnées que j'ai bloqués.
Voici ma requête qui ne fonctionne pas comme je le souhaite :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 select DISTINCT lt.ref_pseudo_bloque, ab.pseudo , c.ref_abonn, ab.ref_abonn, c.statut from connexions c , abonne_chat_maur ab , liste_noire_chat lt where c.theme IN (select theme from connexions where ref_abonn='$refabonn' and statut=1) and c.ref_abonn<>'".$refabonn."' and c.ref_abonn=ab.ref_abonn and lt.ref_abonne=c.ref_abonn and c.statut=1 and lt.ref_pseudo_bloque NOT IN (select ref_pseudo_bloque from liste_noire_chat where ref_abonne='$refabonn' and statut=2 )
Ici, $refabonn. représente la référence du l'abonné connecté que je récupère.
Merci d'avance
Partager