Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Auswählen der Spaltenwerte einer Join-Tabelle als Ergebnisspaltenname

Es hört sich so an, als ob Sie PIVOT möchten der latitude und longitude Werte. Leider hat MySQL keinen PIVOT Funktion, aber Sie können sie mit einer Aggregatfunktion mit einem CASE replizieren Aussage:

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

Siehe SQL-Fiddle mit Demo