我正在尝试从 wordpress 数据库中获取信息;我需要的数据分布在 3 个表之间:
- wp_em_events
- wp_em_locations
- wp_postmeta
简化图:
wp_em_events
+-----+--------+-----+
| id | loc_id | a |
+-----+--------+-----+
| 1 | 3 | foo |
| 2 | 4 | bar |
+-----+--------+-----+
wp_em_locations
+--------+----+
| loc_id | b |
+--------+----+
| 3 | x |
| 4 | y |
+--------+----+
wp_postmeta
+-------+------+------+
|post_id| key |value |
+-------+------+------+
| 1 | name | dave |
| 1 | age | 14 |
| 2 | name | rob |
| 2 | age | 20 |
+-------+------+------+
$querystr = "
SELECT *
FROM wp_em_events
LEFT JOIN wp_em_locations ON wp_em_events.loc_id = wp_em_locations.loc_id
LEFT JOIN wp_postmeta ON wp_em_events.id = wp_postmeta.post_id
WHERE wp_em_events.id = 1
GROUP BY wp_em_events.location_id, wp_em_events.id
";
这将返回:
+-----+--------+-----+----+-----+-------+
| id | loc_id | a | b | key | value |
+-----+--------+-----+----+-----+-------+
| 1 | 3 | foo | x | age | 20 |
+-----+--------+-----+----+-----+-------+
我的 GROUP BY 破坏了我想收到的名字->戴夫:
+-----+--------+-----+----+-----+-----+
| id | loc_id | a | b | name| age |
+-----+--------+-----+----+-----+-----+
| 1 | 3 | foo | x | dave| 14 |
+-----+--------+-----+----+-----+-----+
我需要捕获所有元记录,并以某种方式将它们与父记录相关联,最好是它们的键->值。