|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mai 2011 Messages : 4 ![]() |
Bonjour,
Je ne pense pas qu'il soit utile de préciser le contexte ou de coucher les tables (si il le faut, je le ferais sans fautes ~). Donc voilà, je voulais afficher les doublons, ce que j'arrive à faire (pas trop dur avec le tutoriel présent) mais là où ça peche, c'est à la suppression. Je me trouve avec cette erreur : #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'M1 WHERE M1.id < ANY (SELECT M2.id FROM musique_tbl M2 WHERE M1.id <> M2.id' at line 2 Pour cette requête : Code :
Ou alors j'ai loupé quelque chose d'important ^.^' Une réponse ? Merci d'avance, Satsu. |
||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
C'est un tutoriel écrit pour MySQL ? ced
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#3 | ||||||||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
MySQL ne supporte les quantificateurs ANY et ALL que depuis la version 4.1.
Pour ce qui est des sous requêtes dans les ordres de mise à jour (INSERT, UPDATE et DELETE) je crois que MySQL ne sait toujours pas faire grand chose !!!!! Démo : Code :
Code :
FROM Articl' at line 2 18 0 Code :
Code :
FROM an)' at line 2 27 0 Bref, les quantificateurs ANY et ALL ne sont pas supportés du tout dans les sous requêtes de mise à jour ! C'est une des nombreuses limitations de MYSQL. A lire sur cet ersatz de SGBDR : http://blog.developpez.com/sqlpro/p9...udre-aux-yeux/ A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||||||||
|
00
|
|
|
#4 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 848 ![]() |
oui tu peux t'en servir que comme le quantificateur in dans les requêtes...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 4 ![]() |
Ah, bah, merci de vos réponses même si c'est pas vraiment ce que j'attendais (au niveau du résultat).
Du coup, j'vais me débrouiller autrement. Peut-être à rajouter dans le tutoriel sur les doublons ? Que certains SGBDR ne supportent pas cette solution ? (ou alors c'est noté et j'ai pas vu ._.) Merci d'avoir pris le temps de répondre, je note comme "résolu". EDIT : Je viens de lire ton article, bah je me doutais pas de tous ces défauts à vrai dire. Ca ouvre les yeux comme on dit ~ |
|
|
00
|
|
|
#6 | |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 953 ![]() |
Citation:
Mieux vaut donc l'éviter si l'on veut faire des choses proprement ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 4 ![]() |
Ma Base n'étant pas relationnel, je n'y voyais pas trop d'inconvénients à travailler dessus, mais je dois avouer que passer une journée sur une requête banale sans la voir aboutir pour quelle raison ? La limitation du SGBDR ? C'est assez frustrant.
Je suis en stage actuellement, mais a l'avenir, je retiens ! Merci, Satsu. |
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 848 ![]() |
tu peux contourner le problème en créant une table temporaire avec ta sous requête et utiliser une jointure pour établir ta condition d'infériorité...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
|
|
00
|
|
|
#9 | ||
![]() ![]() |
Si ma mémoire est bonne, ce problème est lié au fait que MySQL ne sait pas insérer, mettre à jour ou supprimer lorsque la table concernée est dans une auto-jointure dans la requête, comme c'est le cas implicitement avec la sous requête ici.
Il faut alors créer une table temporaire avec une requête SELECT qui isole les doublons à supprimer puis faire une jointure de la vraie table avec la table temporaire pour supprimer réellement les doublons. Dans ton cas, je crois que ça donnerait un truc de ce genre : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 4 ![]() |
Merci !
J'ai tenté de bidouiller mais ca faisait un peu "foireux" ~ Créer une table temporaire m'était venu à l'esprit mais je pensais qu'il y avait "plus simple" (tout est relatif après ^^'). En tout cas, ca marche impeccable Merci bien ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com