Page 1 sur 1

Requete avec jointure... et MIN

Posté : 01 mai 2008, 16:39
par supercanard
Bonjour,

Voilà je suis un peu beaucoup en galère... j'essaye de m'en sortir mais là j'y arrive plus :lol:

Voici dabord mes tables :

Image





L'idée ou plutôt le but est de construire un menu dont l'intitulé des liens correspondrait aux nom des sections. La destination de ce lien correspondrait à l'id_pages dont l'ordre de la table page est le plus faible.





Par exemple, si j'ai dans la table section :

id_section = 1, nom = toto
id_section = 2, nom = titi
id_section = 3, nom = nono


Et dans la table des pages :

id_pages = 1, nom = page A, section toto, ordre = 1
id_pages = 2, nom = page B , section toto, ordre = 2
id_pages = 3, nom = page C , section titi, ordre = 1


Mon menu devrais ressembler à ça :

- Intitulé (nom section) : toto + destination (id pages) : 1
- Intitulé (nom section) : titi + destination (id pages) : 3


Donc à chaque fois un seul résultat pour une section et pas de résultat si il n'ya pas de page lié à une section...




Je sais donc ce que je veut mais quand il s'agit e faire la requête je m'embrouille totalement. Pour l'instant j'ai ça, avec erreur en rapport avec (MIN) :
"SELECT zcms_sections.id_sections, zcms_sections.nom, id_pages, MIN(zcms_pages.ordre) AS PageDestination 
FROM zcms_sections, zcms_pages 
ORDER BY zcms_sections.ordre"
Voilà, j'espère que vous pourrez m'éclaircir les idées :wink:

Posté : 01 mai 2008, 17:03
par katagoto
Je vais t'avouer un truc, moi même je ne maitrise pas bien les jointures...
Mais si j'étais toi, au lieu de faire un truc du genre :
nom = page A
nom = page B
nom = page C

je ferais :
page = A
page = B
page = C

Plus simple, plus léger, plus facile a manier et moins d'embrouilles...

Posté : 01 mai 2008, 17:10
par supercanard
Je vais t'avouer un truc, moi même je ne maitrise pas bien les jointures...
Mais si j'étais toi, au lieu de faire un truc du genre :
nom = page A
nom = page B
nom = page C

je ferais :
page = A
page = B
page = C

Plus simple, plus léger, plus facile a manier et moins d'embrouilles...
Euh.... j'avoue que je te suis pas du tout là, surement mon cerveaux qui chauffe :D

Posté : 01 mai 2008, 17:19
par katagoto
Ah bah quand on a pas l'habitude :roll:
Et dans la table des pages :

id_pages = 1, nom = page A, section toto, ordre = 1
id_pages = 2, nom = page B , section toto, ordre = 2
id_pages = 3, nom = page C , section titi, ordre = 1
Moi je ferais comme ça :
id_pages = 1, page = A, section toto, ordre = 1
id_pages = 2, page = B , section toto, ordre = 2
id_pages = 3, page = C , section titi, ordre = 1

PS : on t'as jamais dis que si on remplaçais le premier a de ton pseudo par un o c'est méchant ??? :roll:

Posté : 01 mai 2008, 17:33
par supercanard
Bon en fait j'ai résolu le problème simplement.
J'ai crée une table pivot contenant les index_sections en rapport avec les index_pages...

Ça simplifie carrément la requête :)