requetes imbriquées en SQL avec mysql

requetes imbriquées en SQL avec mysql - SQL/NoSQL - Programmation

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

Reply

Marsh Posté le 12-07-2004 à 21:34:45   

Reply

Marsh Posté le 12-07-2004 à 21:47:06    

quelle version de mysql?

Reply

Marsh Posté le 12-07-2004 à 21:47:51    

MySQL 3.23.49

Reply

Marsh Posté le 12-07-2004 à 21:48:22    

dans ce cas, il te reste tes yeux pour pleurer.

Reply

Marsh Posté le 13-07-2004 à 00:41:06    

arf quelle merde  :cry:  :sweat:  :cry:

Reply

Marsh Posté le 13-07-2004 à 01:13:57    

herks a écrit :

arf quelle merde  :cry:  :sweat:  :cry:


Oui, c'est le surnom de MySQL :/
 
[:neowen]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

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à :o


Message édité par Mara's dad le 13-07-2004 à 01:42:39

---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 13-07-2004 à 01:44:28    

Mara's dad a écrit :


EDIT : gizmo et mareek vous me décevez là :o


Moi je passais juste par là pour troller  :ange:


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 13-07-2004 à 01:46:10    

herks a écrit :

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


 
Il manque un FROM dans ta requête SELECT et en plus la syntaxe correcte serait "WHERE pays_nom IN (SELECT pays_nom ...)".


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

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 :D


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 13-07-2004 à 01:49:52   

Reply

Marsh Posté le 13-07-2004 à 01:50:24    

Mara's dad a écrit :

On se rattrape comme on peux :D


(j'ai eu mauvais conscience à cause de toi :o)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 13-07-2004 à 01:55:27    

J'espère que ça va pas t'empêcher de dormir :/


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

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 ;)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

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 !
 
! ! ! ! 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à :o


 
Je peux faire une requête d'update sans from avec mon SGDB :o

Reply

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 :o


[:iansolo]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

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 :o


 
Comment ?  [:cvb]  
Il est pas obligatoire le FROM (on parle bien du FROM dans le select imbriqué) ? (juste pour savoir :) )

Reply

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)

Reply

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 :D
 
Et la requête devient :  
 
UPDATE pays_ident SET hits=hits+1 WHERE 3254630221 BETWEEN ip_debut AND ip_fin


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 13-07-2004 à 13:39:11    

a partir des versions 4, mysql est une vrai bdd relationnelle ?

Reply

Marsh Posté le 13-07-2004 à 13:40:17    

4.0.4 : Presque.
4.1.? : Un peu mieux.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 13-07-2004 à 13:42:27    

hop le fou a écrit :

Comment ?  [:cvb]  
Il est pas obligatoire le FROM (on parle bien du FROM dans le select imbriqué) ? (juste pour savoir :) )


 
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 :oo

Reply

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 [:ddr555]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

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.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 13-07-2004 à 13:56:34    

mareek a écrit :

Je dirais que ce sera plutot à partir de la version 12 [:ddr555]


 

Code :
  1. SELECT topic_a_troll
  2. FROM topic_resolu
  3. WHERE sgbd = mysql;

 :o  
 
 [:benj9002]

Reply

Marsh Posté le 13-07-2004 à 15:10:38    

:sarcastic: t'a oublié les guillemets :
...WHERE sgbd = 'mysql';


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 13-07-2004 à 15:26:46    

herks a écrit :

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


 
il faut peut etre essayer un like plutot qu'un = puisque le nom du pays c du texte.


---------------
voili voilou
Reply

Marsh Posté le 13-07-2004 à 15:33:54    

herks a écrit :

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


En plus y a meme pas le FROM dans ta sous requete :sweat:


---------------
voili voilou
Reply

Marsh Posté le 13-07-2004 à 16:01:14    

L'art de détrousser les cadavres quand la bataille est finie :sarcastic:


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed