Tom's Guide > Forum > Programmation > [MySQL] Requete sur 3 tables [résolu]

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

Forum Programmation : [MySQL] Requete sur 3 tables [résolu]

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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


Message édité par Halike le 09-09-2007 à 23:14:43
------------------------------ "Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life."
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

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

Répondre à St3fff

St3fff a écrit :

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 ?

------------------------------ "Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life."
Répondre à Halike

Tu n'as pas chercher beaucoup...

Frenchement j'ai mit moin de 30 secondes

http://www.siteduzero.com/tuto-3-1 [...] nnees.html

Répondre à St3fff

St3fff a écrit :

Tu n'as pas chercher beaucoup...

Frenchement j'ai mit moin de 30 secondes

http://www.siteduzero.com/tuto-3-1 [...] nnees.html



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.

------------------------------ "Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life."
Répondre à Halike

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 !

Répondre à St3fff

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.

------------------------------ "Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life."
Répondre à Halike



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

------------------------------ Découvrer des vidéos et des images de sports extrêmes (ski, monocycle, vtt, etc...)
Répondre à Kymic@IDN

En effet, pour moi il était encore au niveau de comprendre une requête SQL :)

Répondre à St3fff

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

------------------------------ "Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life."
Répondre à Halike
Tom's Guide > Forum > Programmation > [MySQL] Requete sur 3 tables [résolu]
Aller à :

Il y a 1728 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens