Mysql
 sql >> Baza danych >  >> RDS >> Mysql

SQL:przekształć wiersze w kolumny w MySQL (instrukcja SELECT)

Możesz użyć zmiennych dla tego typu osi, ale zapytanie jest nieco bardziej skomplikowane, ponieważ musisz wyliczyć wartości dla każdego zamówienia:

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. Jak uzyskać znacznik czasu w Javie i przechowywać w bazie danych MySQL?

  2. program bazy danych rezerwacji wizyt u lekarza java (mysql)…mam problem z zaprojektowaniem schematu wizyt

  3. Zaktualizować wartości z tabeli MYSQL bez przeładowywania strony?

  4. Uzyskiwanie połączenia nie powiodło się:php_network_getaddresses:nie powiodło się getaddrinfo:nazwa lub usługa nie jest znana

  5. Jak sprawić, by Silverlight pobrał swoje dane z MySQL?