Problème de requête SQL

WRInaute occasionnel
Bonjour à tous,

J'espère trouver un peu d'aide, parce que je bloque sur un Pb SQL.

Je pense que c'est un truc tout bête, mais je ne trouve pas la solution.

Je vous explique :

J'ai une table, celle des membres de mon site que l'on appellera $p (table phpbb_users).
Ils sont identifiés par la clef primaire de la table, user_id

J'ai une autre table que l'on appellera $c et qui contient des données qui appartiennent aux membres.
Les données de la table $c sont rattachées à chaque membre propriétaire de ces données, en répliquant dans un des champs la clef primaire de la table $p, sous le nom id_user

Je ne sais pas si je suis clair.

Je veux récupérer les email des membres qui n'ont pas encore postés de données dans la table $c pour les exporter et les relancer.

En clair :
J'ai besoin des emails des membres $p.user_email identifiés par leur clef primaire $p.user_id, et qui n'ont pas encore postés de données dans la table $c, rattachées à eux par le champ $c.id_user

Je ne trouve pas la solution qui doit être toute bête.

Si vous avez une piste, je vous remercie beaucoup.
 
WRInaute occasionnel
Ecoute, c'est parfait !!

Ça fait un bon moment que je bloquais dessus, j'ai du mal avec ces jointures, je n'arrive pas à bien saisir les tenants et les aboutissants.

Je ne sais pas comment te remercier, vraiment. C'est vraiment gentil pour le coup de main.
 
WRInaute accro
Mountain Magazin a dit:
J'ai une autre table que l'on appellera $c et qui contient des données qui appartiennent aux membres.
Les données de la table $c sont rattachées à chaque membre propriétaire de ces données, en répliquant dans un des champs la clef primaire de la table $p, sous le nom id_user

Il y a une ligne dans $c pour chaque ligne de $p, ou uniquement pour certaines? Je penche pour la deuxième...

Mountain Magazin a dit:
J'ai besoin des emails des membres $p.user_email identifiés par leur clef primaire $p.user_id, et qui n'ont pas encore postés de données dans la table $c, rattachées à eux par le champ $c.id_user

select $p.user_email from $p where $p.user_id not in (select $c.id_user from $c)

select $p.user_email from $p where not exists (select 1 from $c where $c.id_user=$p.user_id)

Jacques.
 
WRInaute occasionnel
Bonjour Jacques,

Je viens d'avoir la réponse dans le post d'avant. C'était pour certaines uniquement, effectivement la 2ème solution.

Merci bcp pour le coup de main.
 
Discussions similaires
Haut