Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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

    Lassé par la pub ? Créez un compte

    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 ?

    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.

    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.



    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 ;) 

    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
    Lassé par la pub ? Créez un compte
    Tom's guide dans le monde