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

Requêtes MySQL Discussion :

Requete MySQL sur plusieurs tables


Sujet :

Requêtes MySQL

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Requete MySQL sur plusieurs tables
    Bonjours,

    Je souhaterai selectionner les 4 dernirs enregistrements qui ont été fais sur 8 tables dont une n'a pas exactement les même champs que les autres. Les 8 tables ont un champs en comun qui me permet justement de savoir si la ligne doit être prise en compte ou non.
    Je tourne un peu rond, voila la requete que j'ai fait mais au final, il n'y à qu'une table qui est prise en compte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT * 
    FROM newsbmx JOIN newsroller  
    JOIN newsskate JOIN newssnow 
    JOIN newsvtt JOIN newsvrac 
    JOIN newssoirees JOIN thenews 
    WHERE ((newsbmx.megaNews = '1') AND (newsroller.megaNews = '1') 
    AND (newsskate.megaNews = '1') AND (newssnow.megaNews = '1') 
    AND (newsvtt.megaNews = '1') AND (newsvrac.megaNews = '1') 
    AND (newssoirees.megaNews = '1') AND (thenews.megaNews = '1')) 
    ORDER BY 'date' LIMIT 0, 4
    Vous aurais comprit, mon but est d'afficher les dernère news paru sur une page d'accueil...

    Quelqu'un aurait une solution pour moi?
    Merci d'avance!

  2. #2
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    La tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM newsbmx JOIN ...
    Donc il te retourne tout de newsbmx et fait des jointure pour rien.

    Tu dois faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     SELECT * FROM newsbmx, newsroller ... 
     WHERE 
        newsbmx.megaNews = '1'
     AND newsroller.megaNews = newsbmx.megaNews 
     AND ....
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    J'ai le même problème qu'avant. J'ai juste la table "thenews" qui sort (la dernière table de la requete).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT * 
    FROM newsbmx, newsroller, newsskate, newssnow, newsvtt, newsvrac, newssoirees, thenews
    WHERE newsbmx.megaNews = '1'
    AND newsroller.megaNews = newsbmx.megaNews
    AND newsskate.megaNews = newsbmx.megaNews
    AND newssnow.megaNews = newsbmx.megaNews
    AND newsvtt.megaNews = newsbmx.megaNews
    AND newsvrac.megaNews = newsbmx.megaNews
    AND newssoirees.megaNews = newsbmx.megaNews
    AND thenews.megaNews = newsbmx.megaNews
    ORDER BY 'date'
    LIMIT 0 , 4
    Je comprend pas trop, pourtant sa doit se faire souvent ce type de requete! mais je ne trouve rien sur le net qui puisse m'eclairer.

  4. #4
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 76
    Points
    76
    Par défaut
    Salut ! Pourquoi tu ne fais pas 8 requêtes ? Je ne comprends pas l'intérêt de la jointure.
    Un seul point-virgule vous manque et tout est dépeuplé.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    En fait, j'ai un site comprenant plusieurs catégories (vtt, bmx, roller...) et des news dans chacune de ces rubriques. Chaque type de news à sa table (newsvtt, newsbmx, newsroller...). Je voudrai que les 4 derniers enregistrements (dans toute les rubriques) s'affiche sur la page d'accueil du site. Donc une recherche global, un ORDER BY 'date' et un LIMIT 0,4 et le résultat s'affiche. J'arrive à le faire pour une table mais pas pour plusieurs.
    Avec 8 requêtes je ne vois pas comment trier le résultat pour sortir les 4 derniers enregistrements.
    Enfin si t'as une solution avec 8 requêtes, je suis preneur!

    Merci

  6. #6
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 76
    Points
    76
    Par défaut
    SELECT * FROM newsmachin1 ORDER BY DATE DESC LIMIT 0,4
    --->affichage
    SELECT * FROM newsmachin2 ORDER BY DATE DESC LIMIT 0,4
    --->affichage
    etc....

    Non ?
    Un seul point-virgule vous manque et tout est dépeuplé.

  7. #7
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Ah ok j'avais pas bien compris le problème alors.


    Philippe> Il veut les 4 dernieres toutes categories confondues


    Effectivement dans ce cas il faut opérer différement. Par exemple une requete chapeau qui recupere les news dans une union des 8 sous requetes. Tu auras par contre peut etre un probleme avec ta table qui n'a pas les meme champs que les autres.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    sa c la requête que j'utilise pour une rubrique. Là je veut confondre toutes les rubrique de news pour au finale afficher 4 résultat.

    En gros il me faudrez sa:

    SELECT * FROM "toute les tables de toute rubriques de news" ORDER BY DATE DESC LIMIT 0,4

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Drizzt [Drone38]
    Ah ok j'avais pas bien compris le problème alors.


    Philippe> Il veut les 4 dernieres toutes categories confondues


    Effectivement dans ce cas il faut opérer différement. Par exemple une requete chapeau qui recupere les news dans une union des 8 sous requetes. Tu auras par contre peut etre un probleme avec ta table qui n'a pas les meme champs que les autres.
    Pour la table qui est differente des autres je peut bricoler un truc. Il lui manque juste deux champs par rapport aux autres, je peut les rajouter, il seront vides c tout.
    Je vais chercher de ce coté là alors!
    merci

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut

    OK C cool Merci pour vos réponses!!

    Super sympa les mec!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    (SELECT * FROM thenews WHERE megaNews = '1' ORDER BY 'date' DESC LIMIT 0, 4)
    UNION
    (SELECT * FROM newsbmx WHERE megaNews = '1' ORDER BY 'date' DESC LIMIT 0, 4)
    UNION
    (SELECT * FROM newsroller WHERE megaNews = '1' ORDER BY 'date' DESC LIMIT 0, 4)
    UNION
    (SELECT * FROM newsskate WHERE megaNews = '1' ORDER BY 'date' DESC LIMIT 0, 4)
    UNION
    (SELECT * FROM newssnow WHERE megaNews = '1' ORDER BY 'date' DESC LIMIT 0, 4)
    UNION
    (SELECT * FROM newsvtt WHERE megaNews = '1' ORDER BY 'date' DESC LIMIT 0, 4)
    UNION
    (SELECT * FROM newssoirees WHERE megaNews = '1' ORDER BY 'date' DESC LIMIT 0, 4)
    UNION
    (SELECT * FROM newsvrac WHERE megaNews = '1' ORDER BY 'date' DESC LIMIT 0, 4)
    ORDER BY date DESC LIMIT 0, 4;
    Sa tourne!

  11. #11
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 110
    Points : 76
    Points
    76
    Par défaut
    Cool ! N'oublie pas de mettre "Résolu" !
    Un seul point-virgule vous manque et tout est dépeuplé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requete MySQL dans plusieurs tables
    Par Luverger dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 23/08/2007, 17h20
  2. Réponses: 1
    Dernier message: 28/03/2007, 12h23
  3. Réponses: 7
    Dernier message: 17/03/2007, 13h52
  4. [MySQL] Problème requete SQL sur plusieurs tables
    Par Tiib_CD dans le forum Langage SQL
    Réponses: 30
    Dernier message: 21/12/2006, 16h52
  5. Réponses: 8
    Dernier message: 17/05/2006, 14h32

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