[MySQL] Comment éviter une requete de type : Select ... Where .. IN .?

Comment éviter une requete de type : Select ... Where .. IN .? [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 08-04-2005 à 11:49:52    

Bonjour,
 
j'ai mis a jour mon serveur Mysql en 4.1.10 (sous debian) pour avoir le support des subquerys parcontre je ne peux toujours pas faire de requette de type :
 
SELECT .. WHERE .. IN (SELECT ..)
 
voila la requette en question :
SELECT Pin, Comp_ID, SUM( CDRTable.Duration *  RateTable.Price)/60
FROM CDRTable INNER JOIN RateTable on CDRTable.`B-Leg_Zone` = RateTable.AreaCode
WHERE CDRTable.Pin IN  
( SELECT A.Pin
FROM CDRTable as A INNER JOIN CDRTable as B ON A.Pin = B.pin  
WHERE A.`Bal_Left` = 75000 and B.Bal_Left<=0
GROUP BY Pin
LIMIT 0,10 )  
GROUP BY CDRTable.Pin, Comp_ID;
 
j'aimerai savoir comment vous feriez cette requette sans les sous-requettes :S
car j'ai du mal.
 
merci.
 
 

Reply

Marsh Posté le 08-04-2005 à 11:49:52   

Reply

Marsh Posté le 08-04-2005 à 12:21:26    

Kytrix a écrit :

Bonjour,
 
j'ai mis a jour mon serveur Mysql en 4.1.10 (sous debian) pour avoir le support des subquerys parcontre je ne peux toujours pas faire de requette de type :
 
SELECT .. WHERE .. IN (SELECT ..)


 
Pas normal.
 
http://dev.mysql.com/tech-resource [...] eries.html
 

Citation :


Subqueries are SELECTs inside Parentheses
 
Simply put, a subquery is a SELECT statement that is written inside another SQL statement (which is often, but does not have to be, another SELECT). To distinguish the subquery (or inner query) from its enclosing query (or outer query), it must be enclosed within parentheses. Here is an example:
 
SELECT * FROM clients WHERE clno IN                -- outer query
   (SELECT clno FROM firms WHERE city = 'leduc');  -- inner query


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 08-04-2005 à 13:05:12    

voila le message que j'obtiens :
#1235 - This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery'  
 
car il est possible de faire un WHERE .. = (Select..)
mais pas avec IN/ALL ...
 
en fait je pensais ça allait macher avec un INNER JOIN (Select ..)  
mais je m'étais trompé ! ça marche =)
merci quand meme :)

Reply

Sujets relatifs:

Leave a Replay

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