Mysql
 sql >> база данни >  >> RDS >> Mysql

използване на функцията за завъртане в mysql за създаване на таблица apriori

За вашата заявка GROUP_CONCAT; във вашия случай stmt, вие имате предвид таблицата с продукти като product себе си. Но във вашата заявка за присъединяване вие ​​се позовавате на продуктовата таблица като псевдоним p . Тъй като първата заявка group_concat е част от заявката за присъединяване, трябва да запазите псевдонимите на таблицата същите. (направени промени на ред 5)

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'count(case when p.name = ''',  
      product.name,
      ''' then 1 end) AS ',
      replace(product.name, ' ', '')
    )
  ) INTO @pivotsql
from product;

SET @sql = CONCAT('SELECT omd.order_match_id, ', @pivotsql, ' from order_match_detail omd
left join order_match om
  on omd.order_match_id = om.id
left join product p
  on omd.product_id = p.id
  where om.order_status_id in (4, 5, 6, 8)
group by omd.order_match_id');

PREPARE stmt FROM @sql;
EXECUTE stmt;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да коригирам mysqli::real_connect():Грешка при неуспешна SSL операция?

  2. Как да се уверя, че съм хванал всички грешки от MySQLi::multi_query?

  3. Как да изведете комбинирани резултати от две MySQL таблици, използвайки PDO

  4. Грешка в Mysql:#1247 - Препратка „карма“ не се поддържа (препратка към групова функция)

  5. Получаване на MySQL група чрез заявка за показване на реда в тази група с най-висока стойност