2016-01-21 2 views
0

Я пытаюсь получить HTML-таблицу с:выбрать различные значения на той же колонке

User's first name | User's last name | Phone | Product he bought 

И у меня есть следующая таблица (сделанный автоматически с WooCommerce):

meta_id | post_id | meta_key | meta_value 

    100   41  email  [email protected] 
    101   41  phone  666666666 
    102   41  firstname  Name 
    103   41  lastname  Lastname 

Как я могу ВЫБРАТЬ значения электронной почты, телефона, имя и фамилию всего одним запросом, чтобы «эхо» его в моем PHP-файле. Пробовал с UNION, с SELECT в первом SELECT ... и они не выводят то, что я хочу.

Спасибо!

ответ

3

Одним из способов является использование условной агрегации:

select post_id, 
     max(case when meta_key = 'firstname' then meta_value end) as firstname, 
     max(case when meta_key = 'lastname' then meta_value end) as lastname, 
     max(case when meta_key = 'phone' then meta_value end) as phone, 
     max(case when meta_key = 'email' then meta_value end) as email 
from t 
group by post_id; 

Условный агрегация делает его очень легко добавлять новые столбцы или сцепить вместе значение, когда ключи повторяются (подсказка: используйте group_concat()).

+0

Вот что я хочу !! Он отлично работает! Благодаря!!! – Testor10

Смежные вопросы