Kurzversion:
Ich muss das Ergebnis einer Abfrage anpassen, indem ich einen Wert als Spaltennamen und einen anderen Wert als Spaltenwert verwende. Es muss auch automatisch sein (nicht fest codiert, Hunderte von möglichen “Meta-Schlüsseln”).
Lange Version:
Ich verwende die “Benutzer-Meta”-Struktur von WordPress, in der ein einzelner Benutzer eine Benutzer-ID hat und eine andere Tabelle “Meta-Daten” enthält, die sich auf den Benutzer beziehen.
Diese Metadaten sind willkürlich und haben nur vier Spalten:
meta_id
, post_id
, meta_key
, meta_value
.
Ich möchte eine SQL-Abfrage für einen bestimmten Benutzer durchführen und die Ergebnisse so formatieren, dass alle Metadaten so formatiert sind, als wären sie Zeilen, wobei die meta_key
ein Spaltenname ist und meta_value
ist der Wert für die Spalte.
Beispieldatenbank:
-- wp_users
* ID | username | email
35 | radgh | [email protected]
-- wp_usermeta
* meta_id | user_id | meta_key | meta_value
1 | 35 | first-name | Radley
2 | 35 | last-name | Sustaire
3 | 35 | newsletter | on
Meine Anfrage (Ich muss den (???)-Teil herausfinden, der die Meta-Schlüssel/Wert-Paare als gefälschte Spalten generieren würde.)
SELECT
`users`.ID as 'user_id',
`users`.username as 'username',
`users`.email as 'email',
(???)
FROM `wp_users` `users`
INNER JOIN `wp_usermeta` `meta`
ON `users`.ID = `meta`.user_id
WHERE `wp_users`.ID = 35
Gewünschtes Ergebnis:
* user_id | username | email | first-name | last-name | newsletter
35 | radgh | [email protected] | Radley | Sustaire | on
In dieser ähnlichen Frage verwendet die ausgewählte Antwort fest codierte Felder. Ich möchte dies automatisch tun. 🙂
Nehmen Sie die ‘myfakecolumn’ und versuchen Sie auch, diese Logik anzuwenden. [stackoverflow.com/questions/15091330/… [1]: stackoverflow.com/questions/15091330/…
– RazorSky
6. August 2013 um 20:24 Uhr