Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chọn giá trị cột của bảng nối làm tên cột kết quả

Có vẻ như bạn muốn PIVOT latitudelongitude các giá trị. Rất tiếc, MySQL không có PIVOT nhưng bạn có thể sao chép nó bằng cách sử dụng một hàm tổng hợp với CASE tuyên bố:

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

Xem SQL Fiddle with Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Viết một truy vấn kế thừa được viết bằng SQL bằng cách sử dụng một phép nối bên trong?

  2. Làm cách nào để chỉ chạy Google Cloud SQL khi tôi cần?

  3. Thông báo lỗi:Ngoại lệ trong chuỗi chính org.hibernate.HibernateException:Lỗi khi truy cập luồng stax

  4. Các trường dấu thời gian trong django

  5. MySQL:trả về các hàng đã cập nhật