SQL Créer une vue avec Nom Champs et Valeur dans des enregistrements

SQL Créer une vue avec Nom Champs et Valeur dans des enregistrements - SQL/NoSQL - Programmation

Marsh Posté le 23-04-2018 à 17:20:07    

Hello,
 
J'ai un petit soucis pour récupérer les données d'une table très mal formatée, dont je ne peux modifier la structure...
 
 
VOici la table :

submit_time     form_name                                       field_name      field_value
------------------------------------------------------------------------------------------------------------
1522924728.8042 Réservation Cours Lyon Global             nom                   durand
1522924728.8042 Réservation Cours Lyon Global             prenom               jf
1522924728.8042 Réservation Cours Lyon Global             mail                 jf.durand@hotmail.fr
1522924728.8042 Réservation Cours Lyon Global             telephone            06/06/06/06/06
1522925469.8983 TOULOUSE - Réservation Cours Débutant     nom                  Dupont
1522925469.8983 TOULOUSE - Réservation Cours Débutant     prenom                Moretti
1522925469.8983 TOULOUSE - Réservation Cours Débutant     mail                  superavocat@dubarreaugenial.fr
1522925469.8983 TOULOUSE - Réservation Cours Débutant     telephone
1522868583.1744 Réservation Cours Lyon Global             nom                   bernard
1522868583.1744 Réservation Cours Lyon Global             prenom               bertrand
1522868583.1744 Réservation Cours Lyon Global             mail                 bernard.bertrand@citron.fr
1522868583.1744 Réservation Cours Lyon Global             telephone             607988989
1522867040.1056 Réservation Cours Lyon Global             nom                   CHARRAL
1522867040.1056 Réservation Cours Lyon Global             prenom               Laurent
1522867040.1056 Réservation Cours Lyon Global             mail                 labonneviande@gmail.com
1522867040.1056 Réservation Cours Lyon Global             telephone             0706050403
1522855899.9742 Réservation Cours Lyon Global             nom                   Boulguiboulga
1522855899.9742 Réservation Cours Lyon Global             prenom               Casimir
1522855899.9742 Réservation Cours Lyon Global             mail                 casimir@laposte.net
1522855899.9742 Réservation Cours Lyon Global             telephone             607080910


 
Comme on le voit, les noms de champs sont situés dans field_name et les valeurs dans field_value...
 
J'aimerais créer une vue de cette table pour avoir ce type de résultat plus souple au traitement :
 


nom             prenom            mail                             telephone         submit_time       cours
------------------------------------------------------------------------------------------------------------
durand          jf                jf.durand@hotmail.fr             06/06/06/06/06    1522924728.8042   Réservation Cours Lyon Global
Dupont          Moretti           superavocat@dubarreaugenial.fr                     1522925469.8983   TOULOUSE - Réservation Cours Débutant
bernard         bertrand          bernard.bertrand@citron.fr       607988989         1522868583.1744   Réservation Cours Lyon Global
CHARRAL         Laurent           labonneviande@gmail.com          0706050403        1522867040.1056   Réservation Cours Lyon Global
Boulguiboulga   Casimir           casimir@laposte.net              607080910         1522855899.9742   Réservation Cours Lyon Global  


 
Je souhaiterais donc le faire en SQL à la volée, mais je sèche un peu...
La table est continuellement alimentée, donc ce n'est pas un oneshot mais de la conversion en continue.
 
La base est MySQL.
 
Est-ce possible où dois je passer par un langage plus évolué ?
 
Merci de votre aide.


---------------
[Instagram] - [Site Web] - [Blog Photo]
Reply

Marsh Posté le 23-04-2018 à 17:20:07   

Reply

Marsh Posté le 23-04-2018 à 17:36:20    

Je viens de trouver !
 
Si ça peut aider quelqu'un...
 

SELECT DATE_FORMAT(FROM_UNIXTIME(submit_time), '%b %e, %Y %l:%i %p') AS Submitted, MAX(IF(field_name='nom', field_value, NULL )) AS 'Nom', MAX(IF(field_name='prenom', field_value, NULL )) AS 'Prenom', MAX(IF(field_name='mail', field_value, NULL )) AS 'Mail', MAX(IF(field_name='telephone', field_value, NULL )) AS 'Telephone' FROM matable_foireuse WHERE form_name = 'Réservation Cours Photo Lyon Global' GROUP BY submit_time ORDER BY submit_time DESC


---------------
[Instagram] - [Site Web] - [Blog Photo]
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed