J'ai quelque chose de similaire au tableau suivant:SQL - Comment transposer?
================================================
| Id | UserId | FieldName | FieldValue |
=====+========+===============+================|
| 1 | 100 | Username | John Doe |
|----+--------+---------------+----------------|
| 2 | 100 | Password | pass123! |
|----+--------+---------------+----------------|
| 3 | 102 | Username | Jane |
|----+--------+---------------+----------------|
| 4 | 102 | Password | $ecret |
|----+--------+---------------+----------------|
| 5 | 102 | Email Address | [email protected] |
------------------------------------------------
je besoin d'une requête qui me donnera un résultat comme celui-ci:
==================================================
| UserId | Username | Password | Email Address |
=========+===========+===========================|
| 100 | John Doe | pass123! | |
|--------+-----------+----------+----------------|
| 102 | Jane | $ecret | [email protected] |
|--------+-----------+----------+----------------|
Notez que les valeurs FieldName ne sont pas limitées à Nom d'utilisateur, Mot de passe et adresse e-mail Ils peuvent être n'importe quoi car ils sont définis par l'utilisateur.
Existe-t-il un moyen de le faire en SQL?
voir http://stackoverflow.com/questions/649802/how-to-pivot-a-mysql-entity-attribute-value- schéma pour une question similaire. Est-il impossible de faire le pivotement dans l'application et laisser la requête tout droit? Si vous avez besoin de N attributs, vous devrez générer la requête dynamiquement. –