sql >> Databasteknik >  >> RDS >> Mysql

Välja kolumnvärden för en sammanfogningstabell som resultatkolumnnamn

Det låter som att du vill PIVOT latitude och longitude värden. Tyvärr har MySQL ingen PIVOT funktion men du kan replikera den med en aggregerad funktion med en CASE uttalande:

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

Se SQL-fiol med demo



  1. Vad är motsvarigheten till Oracle Dual-tabellen i MS SqlServer?

  2. Dra kolumner från härledd tabell och summera dem i en MySQL SELECT-sats

  3. Hur man hittar den sista dagen i månaden i SQL Server

  4. Trigger med dynamiskt fältnamn