Se connecter / S'enregistrer
Votre question

[MySQL] Requete sur 3 tables [résolu]

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
1 Septembre 2007 19:17:34

Bonjour à tous,

Voici mon probleme:

J'ai trois tables:
  • Une table objets, contenant deux colonnes: id et infos
  • Une table users contenant deux colonnes: id et pseudo
  • Une table historique qui contient 3 colonnes: user_id,objet_id et date_modif

    Comme on peut le voir, la table historique est liée à la table users et a la table objet. On peut imagner qu'elle retrace les actions des utilisateurs sur les objet (quand un utlisateur effectue une action sur un objet, une nouvelle entrée est crée sur la table historique, avec l'id de l'utilisateur, l'id de l'objet et la date courante).

    En considérant cette configuration, quelles requetes me permettraient de:

    1)Récupérer la liste des objets avec pour chaque objet, la date de la derniere modification, et le pseudo de l'utilisateur associé a cette modification?
    2)Récupérer la liste des objets avec pour chaque objet la liste des modifications associés (date et pseudo de l'utilisateur associé)? (je ne sais pas si c'est possible)
    3) (à défaut de 2) Récupérer la liste des objets et pour chaque objet, les N dernieres modifications?

    Pour information, monSGDB est mySQL (v 4.1), et j'utilise aussi PHP (v4).

    Sinon,quelqu'un aurait-il un lien pour apprendre à créer des requetes mySQL complexes sur plusieurs tables?

    Merci d'avance.

    Bonne journée :) 
  • Autres pages sur : mysql requete tables resolu

    2 Septembre 2007 00:11:26

    Le site du zero, le cour sur php/MySQL doit bien expliquer ca non ?
    2 Septembre 2007 00:46:54

    St3fff a dit :
    Le site du zero, le cour sur php/MySQL doit bien expliquer ca non ?

    Je viens de vérifier, et je n'ai pas trouvé :(  .
    Je ne pense pas que les jointures complexes soient expliquées dans ce cours d'introduction, et je n'en ai pas le souvenir non plus.

    Une autre idée ?
    Contenus similaires
    2 Septembre 2007 16:53:13

    St3fff a dit :
    Tu n'as pas chercher beaucoup...

    Frenchement j'ai mit moin de 30 secondes

    http://www.siteduzero.com/tuto-3-140-1-lire-des-donnees...


    Salut,
    Merci de te pencher sur mon cas.
    Cependant, il semblerait que je me sois mal expliqué.
    Je sais faire des requetes simples sur une table mySQL, mon probleme n'est pas la. A la limite, je sais meme faire des requetes incluant une jointure simple. Le fait est que les requetes que je demande ici portent sur 3 tables différentes,liées entre elles.
    Peut etre faut il que je précise que je souhaiterait tout faire en une seule requete (je saurais bricoler un truc en php qui me fasse le boulot, mais ca ne me parait ni propre, ni optimisé). Je pense que c'est possible, et c'est pourquoi je fais appel à ce forum.

    Et pour information, ca fait 2 jours que je cherche, et je continue de chercher.

    Enfin merci pour tes conseils, meme si je n'ai pas avancé,je me sens moi seul :D  .

    Bonne journée.
    2 Septembre 2007 17:18:04

    Tu veus dire, une seul requete qui fasse sur les trois tables ?

    Impossible, tu fait une requete qui prend l'id qui tu remet dans ta deuxieme etc...

    Par contre tu peux utiliser UNION, mais pas pour ce cas !
    2 Septembre 2007 17:25:20

    Mouais, c'est justement ce que je cherche a eviter.
    Je suis sur que c'est possible (renseigne toi sur le mot-clé JOIN),mais c'est encore trop complexe pour moi.
    Cependant, j'ai trouvé ca tout a l'heure, et je suis en train de regarder car ca pourrait etre la solution a mes problemes.
    Je te/vous tiens au courant.
    2 Septembre 2007 18:45:15



    voila une requete qui va sélectionner tout l'historique avec les infos des deux autres tables :

    select * from historique
    (INNER JOIN users ON users.id = historique.id_user)
    INNER JOIN objets ON objets.id = historique.id_objet


    Voila je n'ai pas testé mais a priori je n'ai pas fait de faute ^^


    @Steff : C'est bien de vouloir aider , mais renseigne toi avant de dire nimp ;) 
    3 Septembre 2007 00:46:33

    En effet, pour moi il était encore au niveau de comprendre une requête SQL :) 
    9 Septembre 2007 23:13:33

    Avec un peu de retard...

    Un énoooorme merci à Kyimic, c'est tout à fait ca que je recherchais.
    J'ai juste enlevé les parentheses (je me récupérais une erreur de syntaxe SQL sinon), et ca fonctionne au poil.

    Encore merci :) 

    Bonne journée
    Tom's guide dans le monde
    • Allemagne
    • Italie
    • Irlande
    • Royaume Uni
    • Etats Unis
    Suivre Tom's Guide
    Inscrivez-vous à la Newsletter
    • ajouter à twitter
    • ajouter à facebook
    • ajouter un flux RSS