Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

SQL:mengubah baris menjadi kolom di MySQL (pernyataan SELECT)

Anda dapat menggunakan variabel untuk jenis pivot ini, tetapi kuerinya sedikit lebih rumit, karena Anda perlu menghitung nilai untuk setiap pesanan:

SELECT o.order_id,
       MAX(case when rank = 1 then created_at end) as created_at_1,
       MAX(case when rank = 1 then email end) as email_1,
       MAX(case when rank = 1 then content end) as content_1,
       MAX(case when rank = 2 then created_at end) as created_at_2,
       MAX(case when rank = 2 then email end) as email_2,
       MAX(case when rank = 2 then content end) as content_2,
FROM orders o LEFT JOIN
     (SELECT oc.*,
             (@rn := if(@o = order_fk, @rn + 1,
                        if(@o := order_fk, 1, 1)
                       )
             ) as rank
      FROM order_comments oc CROSS JOIN
           (SELECT @rn := 0, @o := 0) vars
      ORDER BY order_fk, created_at
     ) oc
     ON o.order_id = oc.order_fk
GROUP BY o.order_id;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memiliki kesalahan mySQL, kolom tidak diketahui di mana klausa

  2. Pertanyaan tentang emoji iPhone dan halaman web

  3. JPA banyak ke banyak relasi tidak dimasukkan ke dalam tabel yang dihasilkan

  4. Menambahkan kotak centang yang dipilih ke database-PHP

  5. Masalah koneksi MySQL Hibernate saat menggunakan c3p0