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が名前を破壊した場所->私が受け取りたいdave :
+-----+--------+-----+----+-----+-----+
| id | loc_id | a | b | name| age |
+-----+--------+-----+----+-----+-----+
| 1 | 3 | foo | x | dave| 14 |
+-----+--------+-----+----+-----+-----+
すべてのメタ レコードを取得し、できればキー -> 値として親レコードに関連付ける必要があります。