Page 1 sur 1

jointure 2 tables

Posté : 24 juil. 2007, 16:44
par jointure perrave
salut j'essaye de faire une jointure toute simple entre 2 tables
j'ai une erreur par ici pd.products_id = p.products_id... je suis nul ou je comprend rien aux jointures...? ptetre les 2?
help plize

Code : Tout sélectionner

SELECT p.products_id, pd.products_name, p.products_price, p.products_image, FROM products p, products_description pd, WHERE pd.products_id = p.products_id and p.products_status = '1' and pd.language_id = '4' GROUP BY p.products_reference DESC LIMIT 10;

Code : Tout sélectionner

CREATE TABLE `products` ( `products_id` int(5) NOT NULL auto_increment, `products_quantity` int(4) NOT NULL default '0', `products_model` varchar(18) default NULL, `products_image` varchar(64) default NULL, .... PRIMARY KEY (`products_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5677 ;

Code : Tout sélectionner

CREATE TABLE `products_description` ( `products_id` int(5) NOT NULL auto_increment, `language_id` int(5) NOT NULL default '1', `products_name` varchar(64) NOT NULL default '', `products_description` text, `products_url` varchar(255) default NULL, `products_viewed` int(5) default '0', PRIMARY KEY (`products_id`,`language_id`), KEY `products_name` (`products_name`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5677 ;

Posté : 24 juil. 2007, 16:50
par Genova
Salut,
ok tu as une erreur, mais étant donné qu'ici on ne possède pas de don de voyance, on peut pas deviner ton erreur si tu ne la postes pas ;)

erreur mysql jointure 2 tables

Posté : 24 juil. 2007, 17:02
par jointure perrave
moui effectivement :oops:

Code : Tout sélectionner

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 'FROM products p, products_description pd, WHERE pd.products_id = p.products_id a' at line 1

Code : Tout sélectionner

SELECT p.products_id, pd.products_name, p.products_price, p.products_image, FROM products p, products_description pd, WHERE pd.products_id = p.products_id and p.products_status = '1' and pd.language_id = '4' GROUP BY p.products_reference DESC LIMIT 10

Posté : 24 juil. 2007, 17:48
par Ryle
Peut être à cause de ces virgules en trop ? :)
p.products_image, FROM products p, products_description pd, WHERE

virgule en trops

Posté : 24 juil. 2007, 17:57
par jointure perrave
c'était tout simplement ça!

merci Ryle
je suis fatigué des yeux ! :shock:

sinon j'avais essaillé ça : SELECT p.products_id, pd.products_name, p.products_price, p.products_image FROM products p INNER JOIN products_description pd ON pd.products_id = p.products_id WHERE p.products_status = '1' and pd.language_id = '4' GROUP BY p.products_reference DESC LIMIT 1

et c'avait l'air de marchouiller

erreur de syntaxe

Posté : 31 juil. 2007, 18:06
par orion
Bonjour,

j'ai la même erreur mais j'arrive pas à la résoudre, voici l'erreur :

Code : Tout sélectionner

"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 'a.table_utilise FROM produits_miseavant p, article a WHERE p.gro"
voici la requete complete :
$req_nouveau="SELECT p.ref,p.designation,p.modele,a.".$_SESSION['type_prix'].",a.table_utilise FROM produits_miseavant p, article a WHERE p.groupe='".$_GET['groupe']."' and evenement='nouveau' and p.ref=a.ref";
Merci d'avance

Posté : 31 juil. 2007, 18:27
par Truc
le message dit qu'il y a un truc qui ne va pas juste avant ,a.table_utilise
et avant il y a une variable de session... elle doit donc être vide.

Voilà les étapes à suivre pour "debugger" (notamment afficher la requête générée)