Mysql
 sql >> Database >  >> RDS >> Mysql

Selezione dei valori di colonna di una tabella di join come nome della colonna dei risultati

Sembra che tu voglia PIVOT la latitude e longitude i valori. Sfortunatamente, MySQL non ha un PIVOT funzione ma puoi replicarlo utilizzando una funzione aggregata con un CASE dichiarazione:

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

Vedi SQL Fiddle con demo