sql >> Base de Datos >  >> RDS >> Mysql

Seleccionar los valores de columna de una tabla de unión como nombre de columna de resultado

Parece que quieres PIVOT la latitude y longitude valores. Desafortunadamente, MySQL no tiene un PIVOT pero puede replicarla usando una función agregada con un CASE declaración:

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 con demostración