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 :

joindre deux tables sur les premiers caractères d'un champs varchar ou faire une sous requête?


Sujet :

Requêtes MySQL

  1. #1
    Membre habitué
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2008
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 379
    Points : 129
    Points
    129
    Par défaut joindre deux tables sur les premiers caractères d'un champs varchar ou faire une sous requête?
    bonjour,

    j'ai les deux tables suivantes :
    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
    18
    mysql> describe table1;
    +----------------------+-------------+------+-----+---------+-------+
    | Field                | Type        | Null | Key | Default | Extra |
    +----------------------+-------------+------+-----+---------+-------+
    | Id                   | int(11)     | NO   |     | 0       |       |
    | refseq               | varchar(20) | YES  |     |         |       |
    [...]
    +----------------------+-------------+------+-----+---------+-------+
     
    mysql> describe table2;
    +-----------------+-------------+------+-----+---------+----------------+
    | Field           | Type        | Null | Key | Default | Extra          |
    +-----------------+-------------+------+-----+---------+----------------+
    | local_ID        | int(11)     | NO   | PRI | NULL    | auto_increment |
    | gi_ID           | int(20)     | NO   |     | 0       |                |
    | RefSeq_ID_clean | varchar(20) | NO   |     |         |                |
    [...]
    +-----------------+-------------+------+-----+---------+----------------+
    le champs refseq de la table 1 est du type "XX_chiffres.chiffre" par exemple : "NM_1234.1"
    le champs refseq_Id_clean de la table deux correspond aux caractères situés avant le "." du refseq de la table 1.
    Donc en reprenant l'exemple, si on a "NM_1234.1" dans la table 1, on aura "NM_1234" dans la table 2.

    J'aimerais compter le nombre de refseq distinct commun aux deux tables.
    Donc je pensais joindre les deux tables sur le champs refseq, mais je ne sais pas s'il est possible de faire une jointure sur une partie seulement d'un champs... comme avec le % dans un LIKE par exemple.
    J'ai pas trouvé d'exemple dans la FAQ, ni dans la doc, alors je me suis dit que ce n'était pas possible.
    J'ai vu la possibilité de faire des union, mais je ne sais pas comment m'en servir.
    Et j'arrive pas à trouvé de sous requête permettant de faire ce que je veux non plus...

    Si quelqu'un a une idée ou une piste, je suis preneuse

  2. #2
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Citation Envoyé par zaboug Voir le message
    J'aimerais compter le nombre de refseq distinct commun aux deux tables.
    Peux-tu expliciter cette phrase ?
    Pour la jointure tu peux essayer
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    ON refseq_Id_clean=LEFT(refseq,LOCATE(".",refseq))

Discussions similaires

  1. COUNTIFS : tester sur les premiers caractères
    Par tenese dans le forum Excel
    Réponses: 3
    Dernier message: 05/08/2014, 17h43
  2. [AC-2007] Condition en Si sur les premiers caractères d'un champ
    Par btks59 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 02/03/2011, 12h03
  3. Réponses: 3
    Dernier message: 13/02/2009, 15h49
  4. Réponses: 3
    Dernier message: 09/05/2007, 11h39
  5. [Debutant] GROUP BY sur les premiers caracteres d'un champ
    Par seb-astien dans le forum Langage SQL
    Réponses: 8
    Dernier message: 09/11/2004, 14h53

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