sql >> Database >  >> RDS >> Mysql

De kolomwaarden van een samenvoegtabel selecteren als resultaatkolomnaam

Het klinkt alsof je wilt PIVOT de latitude en longitude waarden. Helaas heeft MySQL geen PIVOT functie, maar je kunt het repliceren met behulp van een aggregatiefunctie met een CASE verklaring:

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

Zie SQL Fiddle met demo



  1. Herstarten van transactie in MySQL na een impasse

  2. Hoe te converteren van varbinary naar char/varchar in mysql

  3. Groepeer achtereenvolgens waarden in MySQL en voeg een id toe aan dergelijke groepen

  4. MySQL Probleem bij het matchen van meerdere interesses