我根据实体-属性-值模式 (EAV) 将数据存储在 MySQL 数据库中,特别是来自 Drupal 6 的用户配置文件值。我需要一个 SQL 查询或视图才能将数据作为普通关系表获取。这些表具有以下布局:
Table: users
user_id username
---------------------
1 steve
2 michelle
Table: profile_fields
field_id field_name
------------------------
1 first_name
2 last_name
Table: profile_values
field_id user_id value
---------------------------
1 1 Steve
2 1 Smith
1 2 Michelle
2 2 Addams
我需要以某种方式从查询中获得以下结果:
user_id first_name last_name
-----------------------------------
1 Steve Smith
2 Michelle Addams
我知道在一般情况下,在单个 SQL 查询中这是不可能做到的。但这不是一般情况,我有两个优点:
- 我知道“profile_fields”表的内容,并且我 100% 确定在使用此查询的时间段内该数据不会改变。
- 它不必在单个查询中 - 它可以是一个查询、一些用于分析结果的 PHP 代码,然后是另一个查询。