[RÉSOLU]Utilisier les 'in' dans une requéte sql

Utilisier les 'in' dans une requéte sql [RÉSOLU] - SQL/NoSQL - Programmation

Marsh Posté le 21-04-2006 à 15:46:46    

bonjour,voila j'ai la requéte suivante:
 

Code :
  1. SELECT sujetmess, contenumess, datemess, idclient
  2. FROM message
  3. WHERE destmess
  4. IN (
  5. SELECT id
  6. FROM  CLIENT  WHERE ident =2)
  7. OR idclient
  8. IN (
  9. SELECT id
  10. FROM  CLIENT  WHERE ident =2)
  11. ORDER  BY datemess DESC


 
Elle me semble correcte mais pourtant :
 
 
 
 
    MySQL a répondu:[url=http://dev.mysql.com/doc/mysql/en/Error-returns.html][/url]
 
 
#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 id from client where ident=2) or idclient in (select id [/cpp]Je sais pas,c'est peut être ma syntaxe......
J'aurais besoin de vos lumiéres... :jap:


Message édité par hardrog le 21-04-2006 à 16:09:01
Reply

Marsh Posté le 21-04-2006 à 15:46:46   

Reply

Marsh Posté le 21-04-2006 à 15:50:37    

passe en 4.1 si t'es encore en <= 4.0

Reply

Marsh Posté le 21-04-2006 à 15:51:58    

Si ta version de mySql est ancienne, elle ne supporte pas les requêtes imbriquées ...
 
Essaye ça pour voir :
 

Code :
  1. SELECT m.sujetmess, m.contenumess, m.datemess, m.idclient
  2. FROM message m
  3. LEFT JOIN client c1 ON c1.id = m.destmess
  4. LEFT JOIN client C2 ON c2.id = m.idclient
  5. WHERE c1.ident = 2
  6. AND c2.ident = 2
  7. AND (c1.id IS NOT NULL OR c2.id IS NOT NULL);


Message édité par Beegee le 21-04-2006 à 15:52:18
Reply

Marsh Posté le 21-04-2006 à 15:57:58    

Cela ne fait plus d'erreur mais cela ne donne pas de résultat.
Je vais vérifier ma BD.
Sinon on peut remplacer le fonctionnement du 'in' pas des jointures?

Reply

Marsh Posté le 21-04-2006 à 16:05:02    

c'est vrai qu'en lisant ta requête...
 

Code :
  1. SELECT m.sujetmess, m.contenumess, m.datemess, m.idclient
  2. FROM message m, client c
  3. WHERE c.entid = 2
  4. and
  5. (
  6.    m.destmess = c.id
  7. or m.idclient = c.id
  8. )
  9. ORDER  BY m.datemess DESC

Reply

Marsh Posté le 21-04-2006 à 16:08:38    

merci a vous deux!!! :jap:  
c'est vrai qu'en voyant ta solution Arjuna ça parait tout simple......
Merci en tout cas

Reply

Marsh Posté le 21-04-2006 à 16:10:56    

Arjuna a écrit :

c'est vrai qu'en lisant ta requête...
 

Code :
  1. SELECT m.sujetmess, m.contenumess, m.datemess, m.idclient
  2. FROM message m, client c
  3. WHERE c.entid = 2
  4. and
  5. (
  6.    m.destmess = c.id
  7. or m.idclient = c.id
  8. )
  9. ORDER  BY m.datemess DESC



 
je suis fatigué dis donc, faire 2 jointures externes au lieu d'une jointure interne ...  :sleep:

Reply

Marsh Posté le 21-04-2006 à 16:19:20    

Citation :

je suis fatigué dis donc, faire 2 jointures externes au lieu d'une jointure interne ...  


Dis toi que moi ça faisiat une heure que j'y étais alors tu vois..............

Reply

Marsh Posté le 21-04-2006 à 16:21:43    

Beegee a écrit :

je suis fatigué dis donc, faire 2 jointures externes au lieu d'une jointure interne ...  :sleep:


vivement le we :sleep:
 
chuis crevaid depuis le début de la semaine (enfin... de l'année), pis cette nuit j'étais plongé sur un projet sur lequel je dois avancer pour le boulot, mais sur lequel je ne peux pas plancher la journée (pour un autre client que chez qui je suis), et du coup j'ai dû dormir 2 heures en tout et pour tout :sleep:
 
et dire que j'enchaîne sur un pot ce soir :cry:
 
en plus, là je suis en train de faire un stack overflow :o
 
1 site intranet, deux applis windows, l'intégration au us de leur SI qui merde, le déploiement de leur nouveau logiciel de caisse, plus la TMA sur un ERP chez un seul client...
sauf que maintenant je dois m'occuper de la préparation de la migration de leur ERP, faire des tableaux de comparaison entre nux et win.
pis cet aprèm, on m'a demandé de commenter des applis décisionnelles
genre je sais plus où donner de la tête
 
et mon patron là dessus qui me dit "tiens, tu peux nous faire une appli GPS sur pocketpc pour que les livreurs puisse savoir ce qu'ils ont à livrer et où, et la centrale leur position en temps réel ?"
 
si j'aurai sû, j'aurai pas demandé d'augmentation tiens :sweat:


Message édité par Arjuna le 21-04-2006 à 16:26:54
Reply

Marsh Posté le 21-04-2006 à 16:22:19    

hardrog a écrit :

Citation :

je suis fatigué dis donc, faire 2 jointures externes au lieu d'une jointure interne ...  


Dis toi que moi ça faisiat une heure que j'y étais alors tu vois..............


ça fait toujours ça au début (et quand on est crevé ;))

Reply

Sujets relatifs:

Leave a Replay

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