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

SQL Oracle Discussion :

Tri de table selon les champs qu'elle possède


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut Tri de table selon les champs qu'elle possède
    Bonjour,


    Après quelques recherches infructueuses sur le net, due en grande partie par une grande difficultés à exprimer mon problème j'ai décidé de poster sur le forum.

    J'aimerais créer une application qui ferait une recherche sur un base Oracle, les paramètres seraient des noms de champs et je voudrais en ressortir les tables qui possèdent l'intégralité des champs que j'ai écrit (ça serait genre trois ou quatre champs).

    J'ai essayé de nombreuses requêtes SQL mais au final je n'arrive à rien soit ça ne me renvoie aucun résultat soit toutes les tables qui possèdent au moins un des champs que je cherche.

    Pour info se sera sûrement codé en PHP.

    Pouvez-vous m'aidez ?

    Merci.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Vous voulez dire que vous allez fournir la zone departement_id par exemple et que vous voulez en retour les noms de tables ? Quelque chose comme
    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
    17
     
    SQL> Select table_name
      2    from all_tab_columns
      3   where column_name = 'DEPARTMENT_ID'
      4  /
     
    TABLE_NAME
    ------------------------------
    EMPLOYEES
    EMP_DETAILS_VIEW
    JOB_HISTORY
    DEPARTMENTS
    EMPLOYEES
    EMP_DETAILS_VIEW
    JOB_HISTORY
     
    7 rows selected

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Oui voila quelques chose dans ce genre sauf que je veut pouvoir mettre en paramètre 2 champs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT TABLE_NAME 
    FROM all_tab_columns 
    WHERE COLUMN_NAME ='SOC' 
    ORDER BY TABLE_NAME;
    Là je souhaite afficher toute les tables avec le champs SOC (société) qui existe mais j'aimerais pouvoir mettre en plus un deuxième champs par exemple VAR (variété) et avoir toute les tables qui possèdent ces deux champs...
    Peut être une sous requête ?

    EDIT :
    Oui enfait tout bêtement avec une sous requete ca fonctionne ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select TABLE_NAME
    from all_tab_columns 
    where COLUMN_NAME ='SOC' 
    and TABLE_NAME in   (select TABLE_NAME 
                         from all_tab_columns
                         where COLUMN_NAME ='VAR') 
    order by TABLE_NAME;
    Merci ^^

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 383
    Points
    18 383
    Par défaut
    Je préfère cette méthode-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      select table_name
        from all_tab_columns 
       where column_name in ('SOC', 'VAR')
    group by table_name
      having count(distinct column_name) = 2
    order by table_name asc;

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2009
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2009
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup ! c'est vraie que ta méthode est mieux et surtout plus optimisé ^^ ca évite d'effectuer 2 voir plus de requête.
    C'est parfait !
    : )

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

Discussions similaires

  1. [AC-2010] Alimneter une table avec les champs d'une autre table selon critères
    Par tibao276 dans le forum Access
    Réponses: 2
    Dernier message: 28/02/2014, 21h26
  2. [MYSQL] Commentaires sur les tables et les champs
    Par luc2verga dans le forum Requêtes
    Réponses: 10
    Dernier message: 29/05/2007, 23h49
  3. requete concatené selon les champ sont renseignés ou pas
    Par Damish dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 22/09/2006, 14h14
  4. alias ou synonymes pour les tables ou les champs ?
    Par nanou9999 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/03/2006, 11h04
  5. fusionner 2 tables dont les champs sont identiques mais.....
    Par NoobX dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/10/2005, 16h12

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