MySQL 5 -- Syntaxe SQL

MySQL 5 -- Syntaxe SQL - SQL/NoSQL - Programmation

Marsh Posté le 22-07-2006 à 13:32:01    

J'ai eu la surprise en executant une requête de voir que l'ordre dans l'énumération des tables après un FROM a son importance avec MySQL 5 (au boulot avec MySQL 4 ca marche)
 
Exemple :
 

SELECT DISTINCT _order.* FROM t_ebiz_order _order, t_ebiz_customer_address _customer_address INNER JOIN t_ebiz_customer _customer ON _customer.id_customer = _order.id_customer;


 
La requête ci-dessus plante avec le message : "Unknown column '_order.id_customer' in 'on clause'"
 
Alors que :
 

SELECT DISTINCT _order.* FROM t_ebiz_customer_address _customer_address, t_ebiz_order _order INNER JOIN t_ebiz_customer _customer ON _customer.id_customer = _order.id_customer;


 
Marche  :o ... c'est une norme SQL ça ou bien c'est propre à MySQL cette ordre dans les FROM :??:


Message édité par Giz le 22-07-2006 à 13:34:20

---------------
Asus P5Q Pro | C2D E8400 3GHz@4GHz + Noctua NH-C12P | 2x2Go Patriot Extreme PC-8500 | GeForce GTX 460@Stock 1Go GLH | Crucial SSD M4 64Go Sata3
Reply

Marsh Posté le 22-07-2006 à 13:32:01   

Reply

Marsh Posté le 24-07-2006 à 09:13:18    

je dirais qu'il est moins souple. Avec le INNER JOIN, c'est une jointure entre la table de gauche et celle de droite.
 
Dans ca premiere requete les table concernées sont _customer_address et _customer. Donc _order ne figure pas dans la jointure. Dans la seconde, elle est présente.
 
Je dirais que MySQL est tres tolerant.
 
j'ecrirais plutôt la requete ainsi:

Reply

Sujets relatifs:

Leave a Replay

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