Requête multi-table (variable)

Résolu
Bonjour,

Je recherche le moyen de récupérer des données issu de plusieurs tables différentes et dont le nombre de table varie. Je souhaite donc faire une requête qui récupère des id dans une base de donnée et ensuite les renvoyer faire une requête qui récupère d'autre données issue de toutes les tables ayant l'id séléctionné. Mais je ne vois pas comment récupérer les données. On m'a parlé de procédure, j'ai regardé ca ne semble pas être ca. Et j'ai également testé les TABLE VIEW pour récupérer les résultats, mais ca ne fonctionne pas. Comment faire...

Pour ceux qui n'aurait pas compris, je vais vous donner un exemple connu, celui de Facebook. Comment font-il pour récupérer tous les derniers statuts des membres ? (En clair il vont voir les amis du membre, et regarde dans leur table leurs dernière actions pour les retourné sur le fils d'actualité. C'est a peu prêt ce que je cherche à faire.)

Merci d'avance et ceux qui pourront m'aider (je bloque depuis 2 jours...) et à ceux qui ont lu.



--
Le prochain Mark Zuckerberg est parmi nous.

2 réponses

  1. Eh bien j'ai créer un système qui ressemble à moins que ce soit le même

    Je prend une table avec les infos du membre et la table de ces amis.
    Je lie les deux et fait une requête pour récupérer les deux au sein d'une table.
    Je vais la requête que je veux pour afficher les type de donnée que je veux.

    Merci quand même internetwebservices !
    1. Bonjour,

      L'exemple de Facebook est simple

      Table user
      id_user integer // identifiant de l'utilisateur
      nom Varchar // nom de l'utilisateur

      Table amis
      id_user integer // identifiant de l'utilisateur
      id_amis integer // identifiant d'un de ses amis

      Table Status
      id_status integer // numéro du status
      id_user integer // user ayant posté le status
      status Varchar // texte du status
      date Datetime // date du status

      // dix derniers status des amis où 10 est votre id_user
      select
      status.date, status.status, user.nom
      from
      status, user
      where
      status.id_user in (select id_amis from amis where id_user=10)
      and
      status.id_user = user.id_user
      order by id_status desc
      limit 0,10

      C'est l'esprit, je ne l'ai pas testé donc... Mais le principe c'est d'utiliser une sous requête et une jointure où tout faire en jointure, là ce n'est pas franchement optimisé en fait.

      Cordialement

      Signature non conforme - Publicité supprimée Modération CCM