Recherche sur deux tables

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. Contributeur
    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
    1. 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
      1. Bonjour,

        "SELECT id FROM produits,categorie WHERE produits.id=categorie.id"
        0
        1. 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