我要从 wp_ usermeta 表格和 wp_usermeta 表格中创建视图, 这样我就可以从外部应用程序中查询视图中的行。 基本的 auth 细节存储在 wp_ user( 如用户名、 密码、 电子邮件、 id) 中, 其它字段则存储在 wp_ usermeta 表格中的密钥/ 价值对 。
wp_user 表格的结构如下:
id | login | password | email
-----------------------------
1 | bsmith| abc123 | [email protected]
2 | jjones| def456 | [email protected]
wp_usermeta 表格的结构如下:
id | user_id | meta_key | meta_value
------------------------------------
1 | 1 | firstname| bob
2 | 1 | lastname | smith
3 | 1 | country | denmark
4 | 2 | firstname| jan
5 | 2 | lastname | jones
6 | 2 | country | germany
我想最后用像这样的数据 做一个MYSQL VEW:
id | login | password | email | firstname | lastname | country
-----------------------------------------------------------------
1 | bsmith| abc123 | [email protected]| bob | smith | denmark
2 | jjones| def456 | [email protected]| jan | jones | germany
我知道我至少需要做一个内部连接 wp_usermeta 和 wp_usermeta, 但我也需要在 wp_usermeta 内部进行子查询, 才能把这些行连在一起 。
获取用户行的查询当然很容易:
select u1.id, u1.login, u1.password, u1.email from wp_users u1
我对将元数据列成一行的询问是:
select m1.user_id, m1.meta_value as firstname, m2.meta_value as lastname, m3.meta_value as country
from wp_usermeta m1
join wp_usermeta m2 on (m1.user_id = m2.user_id and m2.meta_key = last_name )
join wp_usermeta m3 on (m2.user_id = m3.user_id and m3.meta_key = country )
where m1.meta_key = first_name
那么,我如何将这两个问题结合起来呢? u1 s 数据,和 u1.id = m1.userid 所在的行?