Я пытаюсь получить данные из таблицы wp_usermeta базы данных Wordpress.CASE WHEN запрос не возвращает ожидаемые результаты
Для тех, кто не familliar с ней, структура выглядит следующим образом:
umeta_id | user_id | meta_key | meta_value
1 | 1 | role | admin
2 | 1 | lat | 12.34456
3 | 1 | lng | 9.392933
4 | 2 | role | user
5 | 2 | lat | 8.694840
6 | 2 | lng | 29.32930
7 | 3 | role | subscriber
8 | 3 | lat | 32.32323
9 | 3 | lng | 3.222222
10 | 3 | some key | some value
... and so on
Теперь у меня есть запись с широты и долготы внутри таблицы, которые определяются с помощью meta_key будучи «lat» или «long», а meta_value - координаты.
Я хотел бы получить каждый пользователь с их широтой и длинными координатами, как это:
user_id | lat | lng
1 | 12.34456 | 9.392933
2 | 8.694840 | 29.32930
3 | 32.32323 | 3.222222
Для этого я в настоящее время использую этот запрос:
SELECT umeta.user_id,
max(CASE WHEN umeta.meta_key = "lat" THEN umeta.meta_value END) AS lat,
max(CASE WHEN umeta.meta_key = "lng" THEN umeta.meta_value END) AS lng
FROM wp_usermeta umeta
Который только дает мне:
user_id | lat | lng
1 | 12.34456 | 9.392933
Вы понимаете, что я делаю неправильно? Помогите действительно оценить!
Проблема решена, спасибо! :) – Philex