IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Relation entre tables


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut Relation entre tables
    Bonjour,

    Je suis en train de faire un site Oscommerce,
    j'ai la base, une table pour les valeurs des attributs et une autre qui gère le stock.

    Voici un exemple de la table stock:
    [stock_id][products_id][stock_attributes][stock_quantity]
    --[ 334 ]----[ 31 ]-------[ 1-17,2-21 ]-----[ 1000 ]-----

    Exemple de la table de la valeur des attributs:
    [attribut_values_id][language_id][attribut_values_name]
    ------[ 17 ]-----------[ 4 ]-----------[ Blanc ]--------

    Donc entre ces 2 exemples, on remarque que l'attributs à comme ID: 17 et que ce chiffre et récupéré dans la valeur de stock_attributs,
    mais comment je peux faire la relation entre les 2??

    j'ai essayer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select s.products_id, av.attribut_values_name
    from stock s, attributs_values av
    where s.products_id = 31
    and av.attribut_values_id like '%17%'
    Cette solution ne fonctionne pas je viens donc vous trouver car je n'ai pas d'autres idée pour mon problème.

  2. #2
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    bonsoir,

    Peux tu etre un peu plus précis?
    en quoi cela ne fonctionne pas?
    vu la modélisation de la table stock, cela risque de ne pas etre évident

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Ma solution ne donne aucun résultat
    Il n'y pas de solution de dire par exemple que av.attribut_values_id est égale au 3eme et 4eme caractère de stock_attributes?

  4. #4
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Par défaut
    ca sera toujours le 3eme et 4eme caracteres?
    il ne pourrait pas par exemple y avoir une ligne qui commence ainsi : 11-17?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    En fait je vais me servir de tous les chiffre je donne un exemple:

    1-17,2-21

    le 1 va etre l'attribut couleur et 2 va etre la taille donc ici:
    attribut 1 couleur de nom 17 blanc
    attribut 2 taille de nom 21 XL

    donc je vais avoir besoin de chaques chiffre surtout les 17 et 21 mais je veux déjà un exemple avec parexemple le 17 et je ferai de la même manière pour l'autre.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    Il y aurait peut etre la solution de mettre du php pour faire resortir la bonne reponse sql

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par nico341 Voir le message
    En fait je vais me servir de tous les chiffre je donne un exemple:

    1-17,2-21

    le 1 va etre l'attribut couleur et 2 va etre la taille donc ici:
    attribut 1 couleur de nom 17 blanc
    attribut 2 taille de nom 21 XL

    donc je vais avoir besoin de chaques chiffre surtout les 17 et 21 mais je veux déjà un exemple avec parexemple le 17 et je ferai de la même manière pour l'autre.
    Il y a visiblement un problème de concepion de la base !
    Il serait préférable :
    - soit de créer une colonne par attribut 'Couleur', 'Taille'...
    - soit s'il y a beaucoup de types d'attributs différents, de faire une table d'attributs et une relation entre les produits en stock et les attributs.

    D'un point de vue purement conceptuel, les colonnes contenant plusieurs attributs sont à proscrire. Il est impossible de faire des relations avec de telles colonnes.
    Le problème de non fonctionnement de la requête vient peut-être du fait qu'il n'y a pas de jointure entre les deux tables.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 105
    Par défaut
    HAAAA voila une bonne solution
    Je n'ai pensé à faire cette manip pour créer les 2 colonnes differentes.
    Merci beaucoup frankyves c'est vraiment sympa de ta part d'avoir suivie mon problème.

    Voici ma requète finale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT pd.products_name, couleur.products_options_values_name AS couleur, taille.products_options_values_name AS taille
    FROM products_stock ps, products_description pd, products_options_values couleur, products_options_values taille
    WHERE pd.products_id =31
    AND pd.products_id = ps.products_id
    AND SUBSTRING( ps.products_stock_attributes FROM 3 FOR 2 ) = couleur.products_options_values_id
    AND SUBSTRING( ps.products_stock_attributes FROM 8 FOR 2 ) = taille.products_options_values_id

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    29
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 29
    Par défaut
    Mais de rien

Discussions similaires

  1. Access me change mes relations entre tables
    Par karimspace dans le forum Access
    Réponses: 14
    Dernier message: 29/03/2006, 09h57
  2. Relation entre tables dans bdd différentes
    Par Mandotnet dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/03/2006, 08h03
  3. Les relations entre tables
    Par sheira dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 20/03/2006, 15h03
  4. Récupération des relations entre tables
    Par Themacleod1980 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/02/2006, 11h34
  5. relations entre tables
    Par ilyassou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/11/2005, 07h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo