Editer liste d'éléments n'étant pas dans une table

richarddum Messages postés 54 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 20 décembre 2005 - 31 mai 2005 à 22:38
richarddum Messages postés 54 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 20 décembre 2005 - 1 juin 2005 à 21:53
Bonjour,

Mon soucis, je dispose de 2 tables (liste de personne, liste de diffusion de message).
Dès qu'un message est transmit à quelqu'un il est donc enregistré dans la seconde table pour historique

Si je veux savoir à qui j'ai envoyé un message, j'obtient la liste via un INNER JOIN.
Par contre, je ne trouve pas de requete pour savoir à qui je nai pas envoyé de message; Sachant que je suis en MYSQL 4.3.3 et donc je ne peux pas faire de sous-requete de type "select * from t1 where id not in (select id from T2)"

Merci de votre aide

11 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 09:34
Hello,



tu peux utiliser NOT EXISTS dans une sous-requete, avec ta version, non ?



http://dev.mysql.com/doc/mysql/en/exists-and-not-exists-subqueries.html
0
richarddum Messages postés 54 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 20 décembre 2005
1 juin 2005 à 10:31
Salut,

Je viens de faire un essai, mais la sous-requete n'est pas acceptée.
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 10:33
Pourquoi, tu as quoi comme erreur ?
0
richarddum Messages postés 54 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 20 décembre 2005
1 juin 2005 à 10:47
En passant ma requete sur un browser WINSQL

requete : select
*
from entreprise
where
not
exists
(select
*
from mail_ent
)
Résultat : Error: Erreur de syntaxe près de 'exists (select * from mail_ent)' à la ligne 1 (State:37000, Native Code: 428)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 11:59
Il faut peut etre des quotes autour des noms de tables et de champs
0
richarddum Messages postés 54 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 20 décembre 2005
1 juin 2005 à 13:47
Non je ne pense pas, j'utilise régulièrement WINSQL pour vérifier mes requetes ou simplement travaillé mes bases de données.

Apparemment ma version MYSQL n'accepte pas les sous-requetes. C'est pour celà que je recherche une solution de remplacement
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 13:53
C'est un peu bizarre, la 4.3.3 accepte les sous-requetes normalement.

Je ne vois pas, a part une couille de WINSQL (que je ne connais pas).

Essaya quand meme directement dans un script pour voir, a la main...
0
richarddum Messages postés 54 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 20 décembre 2005
1 juin 2005 à 17:02
j'ai essayé directement à partir de MYADMIN et j'ai le même soucis, avec ou sans quotes
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 17:18
select
*
from entreprise
where
not
exists
(select
*
from mail_ent
)



Ta requete est bizarre quand meme...



Disons que je veux prendre les id de users qui ne sont pas dans comments



select id from users where not exists (select id_users from comments where comments.id_users=users.id)



avec des * partout, je ne suis pas tres sur de ce que ta base peut chercher.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 juin 2005 à 20:10
Salut,



en gros tu veux ceci :



SELECT u.id FROM users u LEFT JOIN comments c ON c.id_users=u.id WHERE c.id IS NULL



?


<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
0
richarddum Messages postés 54 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 20 décembre 2005
1 juin 2005 à 21:53
Non, rien y fait.
Que je passe par un left ou right (mysql ne prend pas les outer).

Merci, je vais trouver une autre solution
0
Rejoignez-nous