Page 1 sur 1

PROBLEME DIFFICILE POUR MOI

Posté : 01 mars 2013, 16:37
par pbpictures
Bonjour.

Voici mon problème qui cherche sa solution. Très simple pour certains mais véritable casse tête pour moi.
J'ai une base de données sur un site de vente crée avec Joomla/virtuemart 2
A l'intérieur de ma base de données j'ai une table qui affiche le nom du produit et l'identifiant du produit.
Dans toutes les autres tables de la base, seule l'identifiant est repris ce qui pose problème pour les recherches et surtout les modifications (prix, variante de produit etc...)

Quelle requête SQL puis je exécuter afin que l'identifiant du produit se couple automatiquement au nom du produit et ce, quelque soit la table utilisée.

En détail :

TABLE A : NOM DU PRODUIT - IDENTIFIANT DU PRODUIT - DESCRIPTION DU PRODUIT
TABLE B : IDENTIFIANT DU PRODUIT - POIDS
TABLE C - IDENTIFIANT DU PRODUIT - COULEURS, TAILLE

Je veux que dans la table B et la table C le nom du produit de la table A soit repris également dans les 2 tables.

Merci beaucoup pour votre aide et vos réponses

Re: PROBLEME DIFFICILE POUR MOI

Posté : 01 mars 2013, 16:53
par niuxe
Salut,

assez basique en effet :
SELECT
    *
FROM
    tableA AS ta,
    tableB AS tb,
    tableC AS tc
WHERE
    ta.idProduit = tb.idProduit
AND
    ta.idProduit = tc.idProduit

Re: PROBLEME DIFFICILE POUR MOI

Posté : 01 mars 2013, 17:19
par pbpictures
Merci pour cette réponse.

Donc si j'ai bien compris, je dois créer une colonne dans les tables désirées et exécuter la requête SQL.

J'ai eu ce message d'erreur : #1064 - Erreur de syntaxe près de 'WHERE ta.virtuemart_product_id = tb.virtuemart_product_id LIMIT 0, 30' à la ligne 7

J'ai nommé les nouvelles colonnes des tables B et C comme la colonne A.
Quelle erreur ais je commis ?

Re: PROBLEME DIFFICILE POUR MOI

Posté : 01 mars 2013, 18:23
par niuxe
Merci pour cette réponse.

Donc si j'ai bien compris, je dois créer une colonne dans les tables désirées et exécuter la requête SQL.

J'ai eu ce message d'erreur : #1064 - Erreur de syntaxe près de 'WHERE ta.virtuemart_product_id = tb.virtuemart_product_id LIMIT 0, 30' à la ligne 7

J'ai nommé les nouvelles colonnes des tables B et C comme la colonne A.
Quelle erreur ais je commis ?
non

IDENTIFIANT DU PRODUIT = idProduit

Je pensais que c'était explicite. Cependant, c'est pas propre comme technique puisque on ne sait pas où est la foreigns key

Re: PROBLEME DIFFICILE POUR MOI

Posté : 01 mars 2013, 18:53
par pbpictures
Mais là je ne comprends plus trop car sur virtuemart l'ID PRODUCT est égal à : virtuemart_product_id
Donc, je fais quoi de mal ?

SELECT
*
FROM
nz8w1_virtuemart_products_fr_fr AS ta,
nz8w1_virtuemart_product_prices AS tb,
nz8w1_virtuemart_product_manufacturers AS tc
WHERE
ta.virtuemart_product_id= tb.virtuemart_product_id
AND
ta.virtuemart_product_id = tc.virtuemart_product_id