PROBLEME DE REQETTE SQL - SQL/NoSQL - Programmation
Marsh Posté le 06-03-2005 à 15:46:18
Si. En 4.1, tu peux faire des selects imbriqués.
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  
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?
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" )
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 
Marsh Posté le 07-03-2005 à 18:15:24
| balakam a écrit : SELECT NOM_PROJ  | 
 
 
| 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.
Marsh Posté le 07-03-2005 à 18:31:30
| balakam a écrit : SELECT NOM_PROJ  | 
 
 
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"
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) 
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 
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 
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 
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