[MySQL] clause WHERE avec AS

clause WHERE avec AS [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 16-06-2007 à 15:46:37    

Bonjour, trève de blabla déjà voilà la requête qui ne marche pas:

Code :
  1. SELECT *, (time1 + time2 + time3) AS time_total
  2. FROM table1
  3. WHERE time_total<=3600
  4. GROUP BY id
  5. ORDER BY id DESC


 
j'ai l'erreur suivante: Unknown column 'time_total' in 'where clause'.
 
par contre, ça, ça marche:

Code :
  1. SELECT *, (time1 + time2 + time3) AS time_total
  2. FROM table1
  3. WHERE (time1 + time2 + time3)<=3600
  4. GROUP BY id
  5. ORDER BY id DESC


 
 
Je voulais donc savoir si je suis vraiment obligé d'utiliser la clause " (time1 + time2 + time3)"?
N'y-a-t-il pas moyen d'utiliser l'alias à la place pour plus de simplicité ?


Message édité par goldorak69 le 19-06-2007 à 00:54:50
Reply

Marsh Posté le 16-06-2007 à 15:46:37   

Reply

Marsh Posté le 17-06-2007 à 20:30:21    

Je crois bien que l'alias ne marche que pour le from car la requete est lue à l'envers. Le renommage du résultat n'intervient qu'à la fin de la requete donc tu peux pas t'en servir comme ça... Bref je crois que tu n'as pas le choix !


Message édité par azgard56 le 17-06-2007 à 20:31:29

---------------
My website : camping l'escale  
Reply

Marsh Posté le 17-06-2007 à 23:09:07    

Tu peut peut être fouiller dans les variables mySQL (@a!= etc...), mais à l'intérieur de d'une requete je sais pas trop dans quel sens c'est pris...


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 18-06-2007 à 10:35:19    

Tu peux toujours faire une sous-requête (ou une vue...) te permettant de travailler avec l'alias généré.
 

Code :
  1. CREATE VIEW wv_table1
  2. AS
  3. SELECT id, champ1, champ2, ..., (time1 + time2 + time3) time_total
  4. FROM table1;
  5.  
  6. SELECT *
  7. FROM wv_table1
  8. WHERE time_total <= 3600
  9. ORDER BY id DESC;


 
PS : Et vire-moi ce putain de group by qui sert à rien :o
 
Et évite le * :o
Surtout quand il est combiné à des champs nommés...

Reply

Marsh Posté le 19-06-2007 à 00:55:51    

je crois que la vue va être la plus apporpriée.
 
PS: dsl pour le "group by" j'ai oublié de le viré, au départ c'est une requête avec des jointures et tout.

Reply

Sujets relatifs:

Leave a Replay

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