【发布时间】:2013-08-08 00:17:11
【问题描述】:
短版:
我需要自定义查询结果,使用一个值作为列名,另一个值作为列的值。它还需要是自动的(不是硬编码,数百个可能的“元键”)。
加长版:
我正在使用 Wordpress 的“用户元”结构,其中单个用户有一个用户 ID,另一个表包含与该用户相关的“元数据”。
这个元数据是任意的,只有四列:
meta_id、post_id、meta_key、meta_value。
我想为某个用户执行 SQL 查询,并格式化结果,以便所有元数据都像行一样被格式化,其中 meta_key 是列名,meta_value 是列的值。
示例数据库:
-- wp_users
* ID | username | email
35 | radgh | radgh@example.org
-- wp_usermeta
* meta_id | user_id | meta_key | meta_value
1 | 35 | first-name | Radley
2 | 35 | last-name | Sustaire
3 | 35 | newsletter | on
我的查询(我需要弄清楚 (???) 部分,它将生成元键/值对作为假列)
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
期望的结果:
* user_id | username | email | first-name | last-name | newsletter
35 | radgh | radgh@example.org | Radley | Sustaire | on
在这个similar question 中,所选答案使用硬编码字段。我想自动执行此操作。 :)
【问题讨论】:
-
采用“myfakecolumn”并尝试应用此逻辑。 [stackoverflow.com/questions/15091330/…[1]:stackoverflow.com/questions/15091330/…
标签: mysql wordpress select inner-join