Il semble que vous vouliez PIVOT
la latitude
et longitude
valeurs. Malheureusement, MySQL n'a pas de PIVOT
fonction mais vous pouvez la répliquer en utilisant une fonction d'agrégation avec un CASE
déclaration :
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
Voir SQL Fiddle avec démo