Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

क्षैतिज परिणाम बनाने के लिए इस ईव क्वेरी को कैसे बनाएं

इसे लागू करने के कई तरीके हैं। कुछ इस तरह से प्रत्येक विशेषता मान के लिए टेबल पर कई बार वापस जुड़ने का काम करना चाहिए:

SELECT p.product_id,
    a.value height,
    a2.value width
FROM Product p
    JOIN Product_Attribute pa ON p.product_id = pa.product_id 
    JOIN Attribute a ON pa.attribute_id = a.attribute_id AND a.name = 'height'
    JOIN Product_Attribute pa2 ON p.product_id = pa2.product_id 
    JOIN Attribute a2 ON pa2.attribute_id = a2.attribute_id AND a2.name = 'width'

और ये रहा Fiddle

यहां MAX और GROUP BY का उपयोग करते हुए एक वैकल्पिक तरीका दिया गया है जिसे मैं व्यक्तिगत रूप से पसंद करता हूं:

SELECT p.product_id,
    MAX(Case WHEN a.name = 'height' THEN a.value END) height,
    MAX(Case WHEN a.name = 'width' THEN a.value END) width
FROM Product p
    JOIN Product_Attribute pa ON p.product_id = pa.product_id 
    JOIN Attribute a ON pa.attribute_id = a.attribute_id 
GROUP BY p.product_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. उच्चतम अंकों वाले पहले तीन समूहों के विशिष्ट अंक होने चाहिए

  2. '0000-00-00 00:00:00' को java.sql के रूप में प्रदर्शित नहीं किया जा सकता है। टाइमस्टैम्प त्रुटि

  3. श्रेणी, उपश्रेणी और संबंधित पुस्तकों के लिए डिज़ाइन डेटाबेस

  4. क्या मुझे प्रत्येक क्वेरी से पहले MySQL सर्वर को पिंग करना चाहिए?

  5. मैं कैसे देख सकता हूं कि कितने MySQL कनेक्शन खुले हैं?