requetes imbriquées en SQL avec mysql - SQL/NoSQL - Programmation
Marsh Posté le 13-07-2004 à 01:13:57
herks a écrit : arf quelle merde |
Oui, c'est le surnom de MySQL
Marsh Posté le 13-07-2004 à 01:41:16
Heu je suis pas sûr là, mais il me semble que ta requête ne fonctionnera sur aucun SQL que je connaisse !
! ! ! ! Y'a pas de clause FROM dans ta sous-requête ! ! ! !
Si c'est sur la même table alors (y'a même pas besoin de pays_nom) :
UPDATE pays_ident SET hits=hits+1 WHERE 3254630221 BETWEEN ip_debut AND ip_fin |
EDIT : gizmo et mareek vous me décevez là
Marsh Posté le 13-07-2004 à 01:44:28
Mara's dad a écrit : |
Moi je passais juste par là pour troller
Marsh Posté le 13-07-2004 à 01:46:10
herks a écrit : bonsoir a tous, |
Il manque un FROM dans ta requête SELECT et en plus la syntaxe correcte serait "WHERE pays_nom IN (SELECT pays_nom ...)".
Marsh Posté le 13-07-2004 à 01:49:52
mareek a écrit : Il manque un FROM dans ta requête SELECT et en plus la syntaxe correcte serait "WHERE pays_nom IN (SELECT pays_nom ...)". |
On se rattrape comme on peux
Marsh Posté le 13-07-2004 à 01:50:24
Mara's dad a écrit : On se rattrape comme on peux |
(j'ai eu mauvais conscience à cause de toi )
Marsh Posté le 13-07-2004 à 01:55:27
J'espère que ça va pas t'empêcher de dormir
Marsh Posté le 13-07-2004 à 01:56:59
Mara's dad a écrit : J'espère que ça va pas t'empêcher de dormir |
t'inquiète, j'ai d'autres choses qui m'empèchent de dormir
Marsh Posté le 13-07-2004 à 11:24:12
Mara's dad a écrit : Heu je suis pas sûr là, mais il me semble que ta requête ne fonctionnera sur aucun SQL que je connaisse !
|
Je peux faire une requête d'update sans from avec mon SGDB
Marsh Posté le 13-07-2004 à 11:37:28
gizmo a écrit : Je peux faire une requête d'update sans from avec mon SGDB |
Marsh Posté le 13-07-2004 à 11:51:02
gizmo a écrit : Je peux faire une requête d'update sans from avec mon SGDB |
Comment ?
Il est pas obligatoire le FROM (on parle bien du FROM dans le select imbriqué) ? (juste pour savoir )
Marsh Posté le 13-07-2004 à 12:27:30
autant pour moi je n'ai pas copie la bonne requete.
La voici avec le FROM
UPDATE pays_hits SET hits=hits+1 WHERE pays_nom=(SELECT pays_nom FROM pays_ident WHERE 3254630221 BETWEEN ip_debut AND ip_fin)
Marsh Posté le 13-07-2004 à 13:06:12
Ok 2 tables, donc avec Mysql 3.23 t'es obligé de faire 2 requêtes !
Ou de mettre le champs hits dans pays_ident car après tout, tu n'as pas besoin de 2 tables vu que c'est une relation 1 à 1 entre les deux
Et la requête devient :
UPDATE pays_ident SET hits=hits+1 WHERE 3254630221 BETWEEN ip_debut AND ip_fin
Marsh Posté le 13-07-2004 à 13:39:11
a partir des versions 4, mysql est une vrai bdd relationnelle ?
Marsh Posté le 13-07-2004 à 13:40:17
4.0.4 : Presque.
4.1.? : Un peu mieux.
Marsh Posté le 13-07-2004 à 13:42:27
hop le fou a écrit : Comment ? |
ouais, je peux activer l'autocomplétion par le parsing de la clause from. S'il n'y a pas d'ambiguité il trouve les bonnes tables à rajouter.
C'est très crade et très mauvaise pratique mais je voulais avoir le dernier mot o
Marsh Posté le 13-07-2004 à 13:44:15
herks a écrit : a partir des versions 4, mysql est une vrai bdd relationnelle ? |
Je dirais que ce sera plutot à partir de la version 12
Marsh Posté le 13-07-2004 à 13:53:28
Si tu cherches une vrai bdd relationnelle, prend postgresql.
Mais la contrepartie, c'est qu'il faut s'en occuper un minimum.
L'avantage de MySql, c'est qu'une fois installé, t'as rien à faire. Avec une BDD un peu plus costaud, ben faut un minumum pour s'occuper de la maintenance du truc.
Marsh Posté le 13-07-2004 à 13:56:34
mareek a écrit : Je dirais que ce sera plutot à partir de la version 12 |
Code :
|
Marsh Posté le 13-07-2004 à 15:10:38
t'a oublié les guillemets :
...WHERE sgbd = 'mysql';
Marsh Posté le 13-07-2004 à 15:26:46
herks a écrit : bonsoir a tous, |
il faut peut etre essayer un like plutot qu'un = puisque le nom du pays c du texte.
Marsh Posté le 13-07-2004 à 15:33:54
herks a écrit : bonsoir a tous, |
En plus y a meme pas le FROM dans ta sous requete
Marsh Posté le 13-07-2004 à 16:01:14
L'art de détrousser les cadavres quand la bataille est finie
Marsh Posté le 12-07-2004 à 21:34:45
bonsoir a tous,
je comprend pas pourquoi cette req ne fonctionne pas.
UPDATE pays_ident SET hits=hits+1 WHERE pays_nom=(SELECT pays_nom WHERE 3254630221 BETWEEN ip_debut AND ip_fin)
aucun msg d'erreur ne s'affiche.
merci