[MySQL] resultats differents selon requete
Résolu
chmanu
Messages postés
166
Date d'inscription
Statut
Membre
Dernière intervention
-
naima0104 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
naima0104 Messages postés 13 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un etrange pb en SQL (MySQL) car je reconcois une base et migre des tables vers d'autres.
J ai une table IMP_Caract_Produits contenant un champ inflammable et je reconstruis cela en créant une table dangerP ou existe un enregistrement inflammable (idenfié 2).
Ce qui donne la requete suivante :
Ce qui me retourne :
Or lorsque j'exécue ma requete de sélection :
j'obtiens :
Bref, j'ai regardé de plus près, et je me suis apercu qu un enregistrement manquait (ce n est pas un doublon, ni rien de spécial) et si j exécute la requete d insertion plusieurs fois, c est toujours le meme qui manque.
QQ un a déjà eu ce pb, ou une idée sur la validité de ma(mes) requete(s) qui ne sont pourtant pas des plus compliquées !
Merci beaucoup, car par la suite, il y a un travail d automatisation à faire derriere.
Chmanu
J'ai un etrange pb en SQL (MySQL) car je reconcois une base et migre des tables vers d'autres.
J ai une table IMP_Caract_Produits contenant un champ inflammable et je reconstruis cela en créant une table dangerP ou existe un enregistrement inflammable (idenfié 2).
Ce qui donne la requete suivante :
insert into Produit_DangerP (Produit_DangerP.IDDangerP, Produit_DangerP.IDProduit) select 2, IMP_produits.IDProduit from IMP_produits, IMP_Caract_Produits where IMP_Caract_Produits.inflammable = "-1" and IMP_Caract_Produits.IDProduit = IMP_produits.IDProduit
Ce qui me retourne :
Query OK, 51 rows affected (0.02) sec Records: 51 Duplicates: 0 Warnings: 0
Or lorsque j'exécue ma requete de sélection :
select distinct * from IMP_Caract_Produits where IMP_Caract_Produits.inflammable
j'obtiens :
52 rows in set (0.01) sec
Bref, j'ai regardé de plus près, et je me suis apercu qu un enregistrement manquait (ce n est pas un doublon, ni rien de spécial) et si j exécute la requete d insertion plusieurs fois, c est toujours le meme qui manque.
QQ un a déjà eu ce pb, ou une idée sur la validité de ma(mes) requete(s) qui ne sont pourtant pas des plus compliquées !
Merci beaucoup, car par la suite, il y a un travail d automatisation à faire derriere.
Chmanu
A voir également:
- [MySQL] resultats differents selon requete
- Resultats foot - Télécharger - Vie quotidienne
- Lexer resultats - Télécharger - Sport
- Mysql community server - Télécharger - Bases de données
- Son de notification différente selon application - Guide
- Ce fichier contient l'historique des livres empruntés à la bibliothèque. combien de titres différents contient-il ? ✓ - Forum Excel
6 réponses
Pas évident à première vue ... peux tu nous communiquer la structure des tables afin de tester (sauf si ces tables sont confidentielles bien sur).
++
++
Bonjour,
merci de me répondre, mais effectivement, je prefere garder l'entiere structure pour moi.
J ai également utilisé cette méthode depuis d autres tables vers encore d autres et je n ai pas eu de pb. Je me demandais juste si il y avait une faille dans ma requete, dans le moteur de MySQL (ce qui m etonnerait), ou dans une quelconque particularite qui m aurait echapé sur les données (j ai fait un import depuis access à la base - ce qui est peut etre une bonne piste d explication)
Chmanu
merci de me répondre, mais effectivement, je prefere garder l'entiere structure pour moi.
J ai également utilisé cette méthode depuis d autres tables vers encore d autres et je n ai pas eu de pb. Je me demandais juste si il y avait une faille dans ma requete, dans le moteur de MySQL (ce qui m etonnerait), ou dans une quelconque particularite qui m aurait echapé sur les données (j ai fait un import depuis access à la base - ce qui est peut etre une bonne piste d explication)
Chmanu
oui, effectivement, bonne remarque, mais toutes mes valeurs sont à -1 et j ai également essayé avec
et j ai le meme résultat (52 enregistrements connus)
Chmanu
select distinct * from IMP_Caract_Produits where IMP_Caract_Produits.inflammable="-1"
et j ai le meme résultat (52 enregistrements connus)
Chmanu
Bonjour, je crois que dans ton INSERT tu RECUPERE les données pas seulement de la table "IMP_Caract_Produits" , mais tu as une jointure des 2 tables "IMP_Caract_Produits" ET "IMP_produits" alors dans ce cas il faut faire :
SELECT COUNT(*) FROM IMP_produits, IMP_Caract_Produits
where IMP_Caract_Produits.inflammable = "-1"
and IMP_Caract_Produits.IDProduit = IMP_produits.IDProduit
==> SI ça donne que 51 , ça montre que un IDPRODUIT existe dans l'une et pas dans l'autre.
SELECT COUNT(*) FROM IMP_produits, IMP_Caract_Produits
where IMP_Caract_Produits.inflammable = "-1"
and IMP_Caract_Produits.IDProduit = IMP_produits.IDProduit
==> SI ça donne que 51 , ça montre que un IDPRODUIT existe dans l'une et pas dans l'autre.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bingo,
en effet,
et
Et comme j insérais IMP_Produit.IDProduit et non IMP_Caract_Produit.IDProduit, il ne connaissai pas et n insérait donc pas.
Merci beaucoup, c'est vrai que j'avais pas pensé à ca, c etait tellement improbable.
En fait, c est un projet que je reprend, et je m apercois au fil du temps que le concepteur n avait pas de notions de bdd. et donc dans ce cas, un produit était considéré inflammable sans avoir été défini auparavant.
Chmanu
en effet,
SELECT COUNT(*) FROM IMP_Caract_Produits where IMP_Caract_Produits.inflammable = "-1"retourne 52
et
SELECT COUNT(*) FROM IMP_produits, IMP_Caract_Produits where IMP_Caract_Produits.inflammable = "-1" and IMP_Caract_Produits.IDProduit = IMP_produits.IDProduit
Et comme j insérais IMP_Produit.IDProduit et non IMP_Caract_Produit.IDProduit, il ne connaissai pas et n insérait donc pas.
Merci beaucoup, c'est vrai que j'avais pas pensé à ca, c etait tellement improbable.
En fait, c est un projet que je reprend, et je m apercois au fil du temps que le concepteur n avait pas de notions de bdd. et donc dans ce cas, un produit était considéré inflammable sans avoir été défini auparavant.
Chmanu