|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Invité de passage
![]() En réorientation professionnelle Inscription : juin 2011 Messages : 4 ![]() |
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à : 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 ? |
|
|
|
00
|
|
|
#2 | ||||
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 881 ![]() |
Déjà pour commencer, je sais que c'est ce qui est enseigné dans les écoles, mais je te conseille de bannir définitivement de tes méthodes, les jointures dites implicites :
Code :
Une jointure devrait s'écrire toujours explicitement. Une jointure implicite se remplace par une jointure interne (INNER JOIN) : Code :
Je ne sais pas pour MySQL, mais j'imagine que c'est comme les autres SGBD, le "Et" s'écrit AND et non pas &&
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
||||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() En réorientation professionnelle Inscription : juin 2011 Messages : 4 ![]() |
d'habitude, je mets effectivement AND, mais && passe aussi sur mysql en tout cas mais je vais suivre les deux conseils. (j'suis autodidacte, j'ai de mauvaises habitudes que je ne demande qu'à corriger merci !)
Et je sens que là, j'ai de sacrées lacunes en mysql... :s Effectivement, ce qui est délicat, c'est que la table categorie et theme ont des id_categorie et id_theme qui sont non pas dans news, mais dans une table de lien à chaque fois : news_cat et theme_cat. Je me rends bien compte que ma requête ne marche pas et je vois que c'est stupide ce que je fais... Mais je ne sais tout bonnement pas comment faire pour relier toutes les tables en une requête, je sais pas si c'est possible en fait... J'imagine que oui ?! J'ai déjà vu qu'on pouvait inclure des select dans un select, mais là, je ne vois pas non plus si c'est vers cette solution que je dois me tourner. Je vais essayer en repartant de la proposition faite dans un premier temps, merci pour les conseils !! thooooo je pense que j'aurais dû mettre ça chez les nioubs débutants !! J'suis désoléééééée :s |
|
|
00
|
|
|
#4 |
![]() ![]() Yves Développeur informatique Inscription : janvier 2007 Messages : 3 881 ![]() |
Dans la correction que je t'ai donné, il te manque le lien entre news_cat et news et entre news_theme et news.
Si tu as compris les modifications que j'ai faites, tu devrais pouvoir retrouver ces liens manquant. Dans news_cat, par exemple, tu dois avoir un id_news et un id_categorie. Le id_catégorie est branché à la table categorie dans la jointure. Il te reste à relier à la table news par le id_news (si c'est bien lui). Si, après ça, ça marche pas explique plus en détail ton problème
__________________
Sevyc64 --- Le partage est notre force NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS |
|
|
10
|
|
|
#5 | ||
|
Invité de passage
![]() En réorientation professionnelle Inscription : juin 2011 Messages : 4 ![]() |
Oui, je vais essayer de trouver à partir de là,
et je reviens signaler si j'y arrive pas, ou si j'ai enfin trouvé... Dans tous les cas, ton aide m'est déjà très précieuse, merci infiniment. (et oui, c'est exactement comme ça que le lien est fait.) -> va tester quelques idées de suite... edit : Ca marche !! Merci beaucoup beaucoup beaucoup, j'ai compris !! Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com