IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Requête à trouver


Sujet :

Langage SQL

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2011
    Messages : 3
    Points : 6
    Points
    6
    Par défaut Requête à trouver
    Bonjour,

    Je vous contacte pour un problème de requête que je n'arrive pas à résoudre.

    J'ai une table amis

    TABLE AMIS

    Id_moi | Id_monami

    1 4
    1 5
    1 6

    Par ex ici le mec avec l'id 1 est ami avec le 4 5 et 6.

    Ensuite, j'ai des posts.


    TABLE POSTS

    Id_du_posteur | Texte

    5 blablabla
    8 blablabla
    4 blablabla
    18 blablabla

    Dans ma requête, je voudrais dire :

    "Selectionne tous les posts des amis de 1."

    Actuellement, je mets dans un tableau les amis et parcours la table : si le posteur est dans le tableau, affichage. Sinon on affiche pas.

    Problème : ça prend enormement de ressources (je suis obligé de parcourir toute la table post et de tester, a chaque ligne, si l'ami correspond a l'id du posteur.) Resultat plus il y a de posts, plus le site lag a fond.

    Merci pour votre aide

    NB : je travaille avec PHP et MySQL

  2. #2
    Développeuse forum
    Avatar de Atomya Rise
    Femme Profil pro
    Développeuse Web
    Inscrit en
    Février 2009
    Messages
    443
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeuse Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 443
    Points : 1 420
    Points
    1 420
    Par défaut
    Je pense que le mieux est de faire une jointure

    A tester :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $req = 
    	mysql_query("
    		SELECT posts.Texte 
    		FROM posts 
    		JOIN amis ON amis.Id_monami = posts.Id_du_posteur 
    		WHERE amis.Id_moi = '1'
    	") or die (mysql_error());
     
    while ($res = mysql_fetch_assoc($req))
    	echo $res["Texte"].'<br /><br />';

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Juste un détail : Inutile de mettre des apostrophes autour des valeurs numériques !

Discussions similaires

  1. Requête trouver le temps avec deux activités
    Par SophieTaureau dans le forum Langage SQL
    Réponses: 4
    Dernier message: 07/02/2012, 11h54
  2. Requête trouver le doublon
    Par SophieTaureau dans le forum Langage SQL
    Réponses: 3
    Dernier message: 03/02/2012, 16h40
  3. Requête : Trouver le tuple avec max
    Par BenoitM dans le forum Requêtes
    Réponses: 4
    Dernier message: 08/03/2010, 14h51
  4. Réponses: 2
    Dernier message: 04/04/2006, 11h46
  5. Réponses: 2
    Dernier message: 19/10/2005, 22h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo