Requete SQL sur 2 tables JOINTURES

Résolu
Bonjour,

J'essaye depuis un moment de savoir comment m'y prendre mais sans succès.
J'ai deux tables ARTICLES et CATEGORIES, dans la table "article" il y a plusieurs champs mais le plus intéressant c'est ces 2 la : category_1 et category_2.

Et ils contiennent une valeur ID de la table CATEGORIES ex:(1 à 9) avec un nom.

Donc le fonctionne est que pour moi chaque "article" peut avoir plusieurs "category".

Example : article id:1 va avoir dans sa colonne category_1 = 2 et category_2 = 8.

Ma question si pas trop bête : Comment récupérer le nom des category que contient mon article.
Actuellement je ne peux récupérer que pour la category_1 ou 2 c'est l'un ou l'autre pas les deux...

Voici un extrait de ma requête :

$art = $db->query(
SELECT article.id, article.title, categories.name AS category
FROM articles
LEFT JOIN categories
ON category_1 = categories.id

)->fetchAll();


$db et query : ont été définis dans des classes.

Si une âme charitable pouvait me solutionner.

Merci

1 réponse

  1. Bonjour,

    je ne suis pas certaine mais essayez ceci

    $art = $db->query(
    SELECT article.id, article.title, categories.name AS category
    FROM articles, categories
    Where category_1 = categories.id
    OR category_2 = categories.id

    )->fetchAll();
    1. Salut,
      deja esayé cette requete et ne donne rien ou pas ce que je veux.

      Mais j'ai pu trouver la solution ou plutoto on me la donner :
      SELECT a.id, a.title,c1.name as category1, c2.name as category2
      FROM article a
      LEFT JOIN categories c1
      ON c1.id = a.category_1
      LEFT JOIN categories c2
      ON c2.id = a.category_2

      Elle donne bien le resultat que je veux et j'ai aussi découvert que faudra que je refait ma bdd^^

      Merci de la réponse quand mêm