Bonjour !
Voilà une journée que je m'arrache les cheveux, je crois que je n'ai pas bien compris le principe des jointures, sur ce coup-là.
Si quelqu'un avait la gentillesse de m'aider ?
J'apprends, je suis novice en MySQL... Clémence je vous en prie !
Voilà mon problème.
Je souhaite afficher une série d'articles et les informations s'y rapportant. Les informations qui concernent ces articles sont réparties sur plusieurs tables.
Je veux afficher titre, contenu, nom auteur, prenom auteur, date, thème, catégorie.
Les champs titre, contenu et date sont sur la table news, laquelle a aussi un id_auteur, et un id_news bien entendu.
Dans une table membre, j'ai le nom et prenom de l'auteur.
Dans une table news_cat , j'ai l'id_news ainsi que l'id_cat, car dans categorie, j'ai l'id_cat et le nom_categorie ...
Même principe pour theme :
table theme : id_theme, nom_theme
table news_theme : id_news, id_theme
Je suis pas si je suis très claire.
Très sagement, j'ai écrit cette requête là :
SELECT
news.id_news,
news_cat.id_categorie,
news_theme.id_theme,
news.titre,
news.contenu,
news.id_auteur,
membre.nom,
membre.prenom,
news.date,
categorie.nom_categorie ,
theme.nom_theme
FROM news, membre, categorie, news_cat, news_theme, theme
WHERE membre.id_membre = news.id_auteur
&& categorie.id_categorie = news_cat.id_categorie
&& theme.id_theme = news_theme.id_theme
ORDER BY id_news DESC limit 10
qui BIEN ENTENDU me renvoie 10 résultats identiques...
Si je mettais pas de limite elle m'en renverrait à l'infini...
Mais je n'arrive pas à comprendre quelle technique je dois employer pour la jointure...
LEFT JOIN ?
un autre SELECT imbriqué ???
Une meilleure clause dans WHERE ???
J'ai lu des pages et des pages... Et là, j'ai la cervelle en surchauffe... Je répète : je débute... :s
Est-ce qu'une bonne âme pourrait m'aiguiller vers la solution siouplaît ?
Partager