PROBLEME DE REQETTE SQL

PROBLEME DE REQETTE SQL - SQL/NoSQL - Programmation

Marsh Posté le 06-03-2005 à 14:55:17    

Bonjour
Je vous savoir si sur MySql je peux faire des requettes imbriquees comme sur oracle et si oui comment car j ai des erreur de syntaxe a chaque fois?
MERCII

Reply

Marsh Posté le 06-03-2005 à 14:55:17   

Reply

Marsh Posté le 06-03-2005 à 15:18:11    

non.

Reply

Marsh Posté le 06-03-2005 à 15:46:18    

Si. En 4.1, tu peux faire des selects imbriqués.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 06-03-2005 à 15:53:13    

quand je le fait cela me fais une erreur comme celle ci
#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 'SELECT NUM_UTIL
FROM UTILISATEUR
WHERE NUM_UTIL = "58" ) LIMIT  

Reply

Marsh Posté le 06-03-2005 à 15:57:55    

le LIMIT doit être accompagné de 2 paramètres
 
edit: tu pourrais poster la requête complète svp?


Message édité par drasche le 06-03-2005 à 15:59:49

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 06-03-2005 à 16:16:15    

SELECT NOM_PROJ
FROM PROJET
WHERE NOM_UTIL = (SELECT NOM_UTIL  
FROM UTILISATEUR
WHERE NOM_UTIL = "edmond" )

Reply

Marsh Posté le 06-03-2005 à 16:17:16    

tu a msn messenger?

Reply

Marsh Posté le 06-03-2005 à 21:31:27    

la requte est bonne syntaxiquement...

Reply

Marsh Posté le 06-03-2005 à 22:31:44    

D'après les règles en vigueur ici, les titres tout en majuscules sont mal vus :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 07-03-2005 à 10:39:53    

C'est quoi ces " dans une requête ? :vomi:

Reply

Marsh Posté le 07-03-2005 à 10:39:53   

Reply

Marsh Posté le 07-03-2005 à 18:14:37    

( mysql :D )

Reply

Marsh Posté le 07-03-2005 à 18:15:24    

balakam a écrit :

SELECT NOM_PROJ
FROM PROJET
WHERE NOM_UTIL = (SELECT NOM_UTIL  
FROM UTILISATEUR
WHERE NOM_UTIL = "edmond" )


 

moi23372 a écrit :

la requte est bonne syntaxiquement...


 
oui et non, on met plutôt IN qu' = dans un subselect, même si c'est pas vraiment une erreur de syntaxe.

Reply

Marsh Posté le 07-03-2005 à 18:31:30    

balakam a écrit :

SELECT NOM_PROJ
FROM PROJET
WHERE NOM_UTIL = (SELECT NOM_UTIL  
FROM UTILISATEUR
WHERE NOM_UTIL = "edmond" )


 
Et sinon :
 
SELECT P.NOM_PROJ
FROM PROJET P
INNER JOIN UTILISATEUR U on U.NOM_UTIL = P.NOM_UTIL
WHERE U.NOM_UTIL = "edmond"
 
ou encore plus simplement (comprends pas ta requete la  :??: ) :
 
SELECT NOM_PROJ
FROM PROJET
WHERE NOM_UTIL = "edmond"

Reply

Marsh Posté le 07-03-2005 à 18:47:52    

glod 2 a écrit :

oui et non, on met plutôt IN qu' = dans un subselect, même si c'est pas vraiment une erreur de syntaxe.


 
absolument pas... c'est vrai que IN est le plus utilisé, mais la requete est absolument correcte...
Il y a tjs moyen d'arrivé par plusieurs chemin à un résultat...
 
dans son cas:
 
IN
EXISTS
= ANY
...  
 
sont également correctes (pour tout autant que la corrélation soit faite pour les opérateurs qui le demande)

Reply

Marsh Posté le 07-03-2005 à 19:14:28    

ok merci les mec

Reply

Marsh Posté le 07-03-2005 à 20:01:32    

En effet, si la sous-requête ne revoit qu'un seul résultat, le "=" est mieu qu'un "IN".
 
Cela dit, je préfère utiliser un "champ = (select max(champ2) from ...)" même quand il n'y a qu'un seul résultat. De évide les surprises le jour où il y en a deux ;)


Message édité par Arjuna le 07-03-2005 à 20:01:42
Reply

Marsh Posté le 07-03-2005 à 20:26:56    

Oui, mais le jour ou il y a 2 résultats vaut mieux le savoir plutôt que d'avoir un résultat aléatoire ;)

Reply

Marsh Posté le 07-03-2005 à 20:31:36    

Ca dépend de l'application, des fois, vaut mieu afficher des données foireuses que de planter :D

Reply

Marsh Posté le 07-03-2005 à 20:31:59    

:D

Reply

Sujets relatifs:

Leave a Replay

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