CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Ordonner une requete SQL (avec 2 tables)

BZHades
BZHades
Niveau 10
23 juin 2004 à 19:00:55

:salut: je me suis lancé dans la programmation de mon propre forum ( je sais, y´en a plein de tout fait tres performant, mais ca s´integre pas bien dans un site et j´ai envie de me lancer ce defi, a la con, peut etre, mais voila)

bref, la n´est pas le problème.

J´explique un peu ma structure MySQL:
j´ai deux table, l´une qui regroupe les topics ( tbl_topics), l´autres les messages
( tbl_messages)dans laquelle j´ai un " id_topic" qui permet de relier les messages a leur topic

donc, j´aimerais bien trier les topic ( de la table tbl_topic)par ordre de date de derniere reponse ( qui se trouve dans la table tbl_messages,
y a t il un moyen de faire ca relativement simplement?

je sais qu´on peut dans une meme requete interroger plusieurs tables, mais j´ai jamais fait...
merci des réponses ( j´ai vu un truc avec plusieurs table prise dans une meme requete sql, mais je sais pas comment faire)

BZHades
BZHades
Niveau 10
23 juin 2004 à 19:04:40

Schinken , si t´es la, ca m´arrangerais pas mal :-)

BZHades
BZHades
Niveau 10
23 juin 2004 à 19:45:57

:up:

fightdante
fightdante
Niveau 10
23 juin 2004 à 19:48:10

no idea tres peux sauront repondre a ca ici !

Aeternus
Aeternus
Niveau 10
23 juin 2004 à 19:53:20

En fait afin de ne pas alourdir le serveur par la requete que tu veux faire je te conseillerais par exemple de rajouter un champ last_msg dans la table des topics que tu incrémenterais avec la date et heure du dernier message y correspondant. la requete devient alors simplissime et je pense que ca va alleger le serveur.

A corriger si je me trompe...

BZHades
BZHades
Niveau 10
23 juin 2004 à 19:55:32

j´avait pensé a ca... mais de l´autre coté, ca alourdi la requete de post d´un message, car on va modifier la table tbl_topic et on va mettre un enregistrement dans tbl_messages

si j´arrive pas a trouver, c´est pas grave, je ferais comme ca... mais il m´avait semblé avoir vu un truc avec une requete sur deux tables en meme temps... j´arrive plus a retrouver le tuto

remy4
remy4
Niveau 10
23 juin 2004 à 19:56:48

BZHades, si personne ne peux t´aider, lorsque je serais sur mon pc, je pourrais vous mettre en relation sur msn.
Enfin c´est pas avant demain ça.

BZHades
BZHades
Niveau 10
23 juin 2004 à 20:10:31

me mettre en relation avec qui?

remy4
remy4
Niveau 10
23 juin 2004 à 20:11:35

schinken

Pour les languages informatiques, je connais pas mieux.

BZHades
BZHades
Niveau 10
23 juin 2004 à 20:15:57

y´a pas moyen que tu me file son msn pliz?

BZHades
BZHades
Niveau 10
24 juin 2004 à 10:00:13

c´est bon, j´ai fini par trouver en cherchant sur les options de fusion, voila la requète ( accrochez vous...)

" SELECT A.id , A.titre, MAX( B.date_post ) LIMIT " .$limite.",".$nombre." AS d FROM tbl_topics A LEFT JOIN tbl_message B ON A.id = B.id_topic GROUP BY B.id_topic ORDER BY d DESC"

mdlclc
mdlclc
Niveau 10
24 juin 2004 à 10:02:50

Ce serait pas du SQL Microsoft ça ?

Sinon, requête imbriquée toute conne.
Select pour choisir tes propriétés.
From pour la provenance des données avec les équivalences de clé
Order by pour trier.

BZHades
BZHades
Niveau 10
24 juin 2004 à 10:06:23

non, c du MySQL en principe ( j´ai pas encore testé)
sinon, moi je veux bien, mais ecrit moi la requete alors, car j´ai pas trouvé plus simple ( je rappelle que je veux prendre les X topic de la table tbl_topic ayant un date de derniere reponse ( dans la table tbl_message, sachant que le message est relié a tbl_topic.id par tbl_messages.id_topic))

atoso
atoso
Niveau 10
24 juin 2004 à 10:09:54

je connais pas la structure de tes tables, mais, tu dois utiliser un prédicat de jointure, genre :

Select ´topic´ from tbl_topics, tbl_messages
where
tbl_topics.id_topic = tbl_messages.id_topic
order by ( => ton critère de tri)
" champ_date" ASC.

Exemple de syntaxe..enfin peut-être ! lol

mdlclc
mdlclc
Niveau 10
24 juin 2004 à 10:10:01

Ouais, j´ai pas testé non plus, mais ça doit tourner.
Sinon, pour ce genre de cas, je passe par la création d´une vue dans laquelle je viens taper. Avec des technologies genre ADO.NET, tu peux facilement créer une fonction qui va mettre à jour ta vue et taper dedans après pendant le même thread. Tu gagnes un peu de temps à l´exécution, surtout si ta base grandit, ce qui est souvent le cas avec des forums.

BZHades
BZHades
Niveau 10
24 juin 2004 à 10:11:32

c quoi ton truc mdldlc?

mdlclc
mdlclc
Niveau 10
24 juin 2004 à 10:12:27

Comment ça mon truc ?

BZHades
BZHades
Niveau 10
24 juin 2004 à 10:13:42

tu disais, " créer une vue" . .. c quoi ca?
et les technologie ADO.NET c´est quoi aussi?
( je précise que mon hébergeur est un serveur apache sous linux avec base MySQL)

mdlclc
mdlclc
Niveau 10
24 juin 2004 à 10:17:36

Ouais, scuse, j´ai la tête dans le VB . NET en ce moment. L´ADO.NET, c´est un ensemble de classes qui te permettent d´aller taper dans une base de données soit en rappatriant une partie des données, donc en mode déconnecté, soit en tapant directement dedans. Tu utilises ça quand tu développes sous VB, C++ et C#, l´avantage étant la portabilité d´un langage à l´autre.
Sous Linux, ça existe aussi avec le projet Mono qui prend en compte ces classes.

Une vue, c´est une sorte de table temporaire que tu crées et qui va contenir des informations issues d´une requête. Dans son cas, tu peux imaginer créer une vue contenant uniquement les nom des forumeurs et le dernier message.
Ca se fait courramment sous Oracle, sous MySQL, je ne sais pas, peut-être dans les dernières versions.

Schinken
Schinken
Niveau 9
26 juin 2004 à 23:50:27

Désolé de n´avoir pu être là à temps :lol: c´est que maintenant que j´ai vu ma boîte mail, mais je t´aurais aidé par MSN, du moins je l´espère :-)))

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment