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 :

Selection dans des tables differentes


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Par défaut Selection dans des tables differentes
    Bonjour à tous

    J'ai une bdd qui contient plusieurs tables avec des colonnes différentes les unes des autres sauf la date d'ajout d'un élément et la colonne valid qui st communes.

    Je souhaite sélectionner parmi l'ensemble les tables les dix éléments les plus récents.

    Étant donné que je débute Voila ou j'en suis, sans résultat (print_r donne un tableau tableau vide):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT * 
    FROM table1 
    UNION JOIN table2 
    UNION JOIN table3 
    UNION JOIN table4 
    WHERE table1.valid=1 
      AND table2.valid=1 
      AND table3.valid=1 
      AND table4.valid=1 
    ORDER BY table1.date_add, table2.date_add,  table3.date_add,  table4.date_add DESC 
    LIMIT 0, 10
    Je précise que j'ai essayé une bonne partie des JOIN (et sans biensur), sans succès .

    Merci par avance.

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Avec le join, ca devrait marcher... Union ne sert pas à la même chose. Donc reste la dessus, puisque ce que tu veux c'est lié tes données!

    Déjà je te conseil aussi de ne pas utilisé * mais les noms de colonnes.

    Ensuite, ton order by... tu le fais sur toutes tes dates, alors qu'elles sont censé etre les même, donc inutile.

    Ca ressemblerai a ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select p.nom, p.id, p.date_add, i.machin, z.truc 
    from table1 as p 
    inner join table2 as i on p.date_add=i.date_add and p.valid=i.valid
    inner join table3 as z  on p.date_add=z.date_add and p.valid=z.valid
    Order by p.date_add
    PS: Par contre il n'affichera que les données qui sont présentent sur les 3 tables (a cause du "INNER"), si tu veux les données qui sont dans table1 et 2 mais pas 3, ou seulement dans 1... Remplace alors "Inner" par "Left Outer"

Discussions similaires

  1. [Mysql] Grouper des données dans 2 tables différentes
    Par jey350 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/11/2006, 11h02
  2. Réponses: 2
    Dernier message: 07/12/2005, 13h25
  3. Envoi de dates identiques dans des tables
    Par beurnoir dans le forum Access
    Réponses: 6
    Dernier message: 10/10/2005, 20h22
  4. Espace dans des tables
    Par fgiuliano dans le forum Langage SQL
    Réponses: 15
    Dernier message: 13/07/2005, 09h15
  5. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23

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