Recherche sur deux tables

Kanagawa -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour

Désolé pour la probable niaiserie de ma demande, mais je débute et je n'ai encore pas trouvé réponse à ma question dans les tutoriels:

Mettons que j'ai 2 tables: produits(id,model) et categories(id, category).

A un moment donné je dispose d'une valeur X de model et d'une valeur Y de category et je souhaite savoir s'il existe un ID pour lequel model=X ET category=Y.

Vers quel type de requête dois-je me tourner ? Une jointure ?

Merci !

3 réponses

  1. Marco la baraque Messages postés 1030 Statut Contributeur 329
     
    Bonjour,
    Le problème c'est que tes tables sont mal construites : il n'y a actuellement aucune relation entre elles.
    J'imagine qu'un produit a une catégorie, et donc ta table produits ressemblera à ça :

    produits(id, model, category_id) où category_id est l'id de la category à laquelle le produit appartient.

    Ensuite, tu auras effectivement besoin d'une jointure :
    select p.* from produit p, categories c
    where c.category = Y
    and p.category_id = c.id
    and p.model = X;


    Cordialement,
    0
  2. Kanagawa
     
    Non non, la table n'est pas mal construite du tout, en l'occurrence c'est la structure d'une boutique OScommerce !

    Ici l'élément commun aux deux tables est tout simplement "id".
    0
  3. Alain_42 Messages postés 5413 Statut Membre 904
     
    Bonjour,

    "SELECT id FROM produits,categorie WHERE produits.id=categorie.id"
    0
    1. Kanagawa
       
      Merci, si ça fonctionne c'est effectivement très simple.

      Il manque dans cette requête les conditions model=X et category=Y mais j'imagine maintenant qu'il suffit de rajouter ceci:

      "SELECT id FROM produits,categorie WHERE produits.id=categorie.id AND model=X AND category=Y"
      0
      1. Alain_42 Messages postés 5413 Statut Membre 904 > Kanagawa
         
        yes
        0