Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélection des valeurs de colonne d'une table de jointure comme nom de colonne de résultat

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