Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecionando os valores de coluna de uma tabela de junção como nome da coluna de resultado


Parece que você quer PIVOT a latitude e longitude valores. Infelizmente, o MySQL não tem um PIVOT mas você pode replicá-la usando uma função agregada com um CASE declaração:
SELECT p.ID, 
  p.post_title, 
  p.post_author,
  max(case when pm.meta_key='latitude' then pm.meta_value end) latitude,
  max(case when pm.meta_key='longitude' then pm.meta_value end) longitude
FROM `wp_posts` p
LEFT JOIN `wp_postmeta` pm
  on p.ID=pm.post_id 
WHERE p.post_type='place' 
  AND (pm.meta_key='latitude' OR pm.meta_key='longitude') 
GROUP BY p.ID, p.post_title, p.post_author
ORDER BY p.ID ASC

Consulte SQL Fiddle with Demo