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 :

Récupérer ID d'enregistrment dans plusieurs table dont un des champ comporte 1 chaine


Sujet :

Langage SQL

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Points : 69
    Points
    69
    Par défaut Récupérer ID d'enregistrment dans plusieurs table dont un des champ comporte 1 chaine
    Bonjour,
    comme le titre l'indique, j'ai un ensemble de tables (utilisateurs, photographes, photographies etc ...). Je voudrais pour chacune de ces tables récupérer le champ identifiant d'un enregistrement qui comporterait une chaine de caractères. voici un exemple de résultat de cette requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    id_photo  id_user  id_photographe
    1            2          15
    47           3          
    110
    113
    Bon je pense que le mieux serait de faire une requete à part pour chacune des tables, puisque je commence sérieusement à penser que ce n'est pas possible en sql.

    je vous donne un morceau de la structure de ma bdd quipour le moment est très basique :

    Photographie
    Champ / Type
    id_photo / int(11)
    nom_photo / varchar(25)
    fichier_photo / varchar(25)
    tags_photo / text
    id_user / int(11)

    Utilisateur
    Champ / Type
    id_user / int(11)
    nom_user / varchar(25)
    prenom_user / varchar(25)

    Merci à tous

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Mais dans quelle(s) colonne(s) recherches-tu ta chaîne de caractères ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Points : 69
    Points
    69
    Par défaut
    je cherche ma chaine dans toutes les colonnes de toutes les lignes de cette base de donnée. Et pour chaque ligne, si elle y figure, me retourner l'id lui correspondant

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 77
    Points : 69
    Points
    69
    Par défaut
    tjrs pas d'idées svp???

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 789
    Points
    30 789
    Par défaut
    Tu n'as aucun intérêt à essayer de faire une requête unique pour ce type de recherche.
    Il faut bien faire une requête par table.

    Si vraiment tu y tiens, voilà ce que ça donnerait avec deux tables :
    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
    select    coalesce(T1.ID_TABLE1, '')    as ID_TABLE1
        ,    coalesce(T2.ID_TABLE2, '')    as ID_TABLE2
    from    
            (    select    ID_TABLE1
                    ,    row_number() over(order by ID_TABLE1)    as ORDRE
                from    TABLE1
                where    COL1 || ' ' || COL2 like ('%MOT%')
            )    as    T1
        full outer join
            (    select    ID_TABLE2
                    ,    row_number() over(order by ID_TABLE2)    as ORDRE
                from    TABLE2
                where    COL3 || ' ' || COL4 like ('%MOT%')
            )    as T2
            on    T1.ORDRE = T2.ORDRE
    order by    T1.ORDRE
    ;
    Bien lourd par rapport à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select    ID_TABLE1
    from    TABLE1
    where    COL1 || ' ' || COL2 like ('%MOT%')
    ;
    select    ID_TABLE2
    from    TABLE2
    where    COL3 || ' ' || COL4 like ('%MOT%')
    ;
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. [AC-2007] Supprimer enregistrement dans plusieurs tables
    Par AidezMoiSvp dans le forum VBA Access
    Réponses: 8
    Dernier message: 14/02/2013, 09h59
  2. [AC-2010] Nouvel enregistrement dans plusieurs tables
    Par theolivier dans le forum Modélisation
    Réponses: 4
    Dernier message: 21/11/2012, 13h40
  3. Réponses: 4
    Dernier message: 16/07/2010, 12h03
  4. Réponses: 1
    Dernier message: 12/05/2009, 11h05
  5. effacer un enregistrement dans plusieurs tables
    Par aba_tarn dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/08/2007, 10h15

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