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 :

Changement de table


Sujet :

Langage SQL

  1. #1
    Membre averti
    Femme Profil pro
    stage
    Inscrit en
    Juillet 2019
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : stage

    Informations forums :
    Inscription : Juillet 2019
    Messages : 37
    Par défaut Changement de table
    Bonjour, alors voilà je vous explique mon problème.
    J'ai une table wordpress donc tout est automatisé, et je souhaite que ce qu'il y 'a dans cette table, soit transféré dans une autre table je m'explique :
    La table wordpress est défini tel ceci :

    TABLE bouffngf_entry_meta

    id entry_id meta_key meta_value
    1 1 6.6 nom de famille
    2 1 6.3 prenom
    3 1 41 date de naissance
    4 1 42 email
    5 2 6.6 nom de famille
    6 2 6.3 prenom
    7 2 41 date de naissance
    8 2 42 email

    Les valeurs dans meta_value sont des vrais prenoms, nom de famille etc., c'est juste pour l'exemple.
    Je souhaite donc les intégrer dans ma nouvelle table qui est la table :

    TABLE personnes

    id nom_personne prenom_personne naissance_personne email


    J'ai déjà essayé plusieurs requêtes ,elles marchent mais le problème c'est que une requête = 1 ligne, j'ai trouvé la requête pour insérer une ligne et du coup ça affiche toutes les informations de la personne mais une information par id , alors que je souhaite toutes les informations sur le même id, j'espère que j'aurais été assez clair,
    Je vous remercie par avance de votre aide

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour,

    Vous pouvez tout faire en une seule requete, faites une recherche sur le forum avec le mot clef pivot, vous trouverez de nombreux exemples pour passer les lignes en colonnes.

    Certaines solution ne fonctionneront pas sur tous les SGBDR, quel est le votre ?

  3. #3
    Membre averti
    Femme Profil pro
    stage
    Inscrit en
    Juillet 2019
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : stage

    Informations forums :
    Inscription : Juillet 2019
    Messages : 37
    Par défaut
    Je suis sur phpmyadmin

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 136
    Par défaut
    phpMyAdmin n'est pas un SGBD...Mais cela signifie sans doute que tu utilises MySQL.
    Donc pas de PIVOT.

    C'est dommage mais on peut faire autrement en utilisant CASE, MAX et GROUP BY.
    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.

  5. #5
    Membre averti
    Femme Profil pro
    stage
    Inscrit en
    Juillet 2019
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : stage

    Informations forums :
    Inscription : Juillet 2019
    Messages : 37
    Par défaut
    J'ai trouvé la requete pour insérer mais du coup elle s'affiche que sur une ligne 1 requete = 1 informations et je veux juste regrouper ses requêtes je ne sais pas comment faire mais la requete que j'ai trouvé ressemble à ceci

    INSERT INTO personnes(nom_personne) SELECT meta_value FROM bouffngf_entry_meta WHERE meta_key ='6.6' ;

    et du coup chaque info = un insert = une ligne , j'ai déjà essayé avec des UNION ça ne donne rien peut-être que ma syntaxe etait mauvaise ou ma logique

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Bonjour,
    Est-ce que la requete suivante renvoie les données que vous voulez insérer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    select n.meta_value as nom, p.meta_value as prenom, dn.meta_value as date_naissance,e.meta_value as email
    from bouffngf_entry_meta n
    left join bouffngf_entry_meta p
    on p.entry_id=n.entry_id
    and p.meta_key=6.3
    left join bouffngf_entry_meta dn
    on dn.entry_id=n.entry_id
    and dn.meta_key=41
     
    left join bouffngf_entry_meta e
    on e.entry_id=n.entry_id
    and e.meta_key=42
    where p.meta_key=6.6
    J'ai considéré que toutes les personnes possédaient un nom mais pas forcément de prénom, ni d'email ou de date de naissance.

    [Edit] oups coquille dans les alias, requete corrigée
    Cordialement
    Soazig

  7. #7
    Membre averti
    Femme Profil pro
    stage
    Inscrit en
    Juillet 2019
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 27
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : stage

    Informations forums :
    Inscription : Juillet 2019
    Messages : 37
    Par défaut
    Je ne comprend pas , a aucun moment il y a ma table PERSONNES et les données ne rentrent pas dedans ils retournent un resultat vide, mais l'execute

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Par défaut
    Coucou, oups une coquille s'est glissée dans ma requete.
    La dernière ligne doit être remplacee par
    Une fois que le select fonctionnera tu pourras ajouter un insert into personnes (liste des champs) devant.
    Je poste depuis mon téléphone désolée pour les typos.

  9. #9
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    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 136
    Par défaut
    Une requête sans jointure et qui fonctionne ausi en l'absence d'une des valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select  entry_id                                        as id
        ,   max(case metakey when 6.6 then meta_value end)  as nom_personne
        ,   max(case metakey when 6.3 then meta_value end)  as prenom_personne
        ,   max(case metakey when 41 then meta_value end)   as naissance_personne
        ,   max(case metakey when 42 then meta_value end)   as email
    from    bouffngf_entry_meta
    group by entry_id
    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.

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

Discussions similaires

  1. [Débutant] Attributs changement de table
    Par pitite dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/03/2012, 17h06
  2. Réponses: 4
    Dernier message: 16/02/2012, 14h27
  3. BO XI 4 - changement de table
    Par bobobo7569 dans le forum Designer
    Réponses: 2
    Dernier message: 01/02/2012, 09h33
  4. Procédures stockées et changement de table
    Par za_za dans le forum Développement
    Réponses: 6
    Dernier message: 31/12/2009, 11h51
  5. [xslt] Changement de tables, colonnes
    Par moutse dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 24/09/2005, 07h16

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