Requete SQL sur 2 tables JOINTURES

Résolu/Fermé
J@rodd Messages postés 39 Date d'inscription mercredi 5 octobre 2011 Statut Membre Dernière intervention 26 octobre 2015 - 15 oct. 2015 à 03:50
J@rodd Messages postés 39 Date d'inscription mercredi 5 octobre 2011 Statut Membre Dernière intervention 26 octobre 2015 - 16 oct. 2015 à 10:45
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

DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
15 oct. 2015 à 04:02
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();
0
J@rodd Messages postés 39 Date d'inscription mercredi 5 octobre 2011 Statut Membre Dernière intervention 26 octobre 2015
16 oct. 2015 à 10:45
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
0