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. MySQL व्यू कैसे बनाएं

  2. क्या एकाधिक प्रश्नों को सम्मिलित करने के लिए लूप के लिए उपयोग करने का कोई विकल्प है

  3. बड़ी प्राथमिक कुंजी:1+ अरब पंक्तियाँ MySQL + InnoDB?

  4. MySQL इरेटिक क्वेरी टाइम्स

  5. फ़ाइल-अपलोड पर बहु ​​छवि अपलोड गलत मात्रा