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

MySQL एक से अनेक संबंध:GROUP_CONCAT या JOIN या दोनों?

आपकी क्वेरी से अनुमान लगाया जा रहा है कि order_id . भी है आपके order_products . में फ़ील्ड तालिका आपने तालिका परिभाषा में उल्लेख नहीं किया है। तब आपकी क्वेरी इस तरह दिखनी चाहिए:

SELECT c.name AS category_name,
             SUM( s.subtotal ) AS amt,
             GROUP_CONCAT( CONCAT(s.name, ' - ', s.subtotal ) SEPARATOR ', ' ) AS subtotals
FROM 
    product_category c 
JOIN 
  ( SELECT op.category, op.name, sum(op.qty*op.unit_price) AS subtotal
    FROM order_products op
    JOIN orders o ON o.id = op.order_id
    WHERE o.date > '2012-03-31'
    GROUP BY op.category, op.name ) s 
  ON s.category = c.id
GROUP BY c.name

आपका डीबी स्कीमा काफी अजीब है, ऑर्डर टेबल ऐसा लगता है कि इसे हटाया जा सकता है और वह तारीख ऑर्डर_प्रोडक्ट्स में चली गई है, क्योंकि प्रत्येक ऑर्डर_प्रोडक्ट्स पंक्ति के लिए आपके पास ऑर्डर टेबल का संदर्भ है। आमतौर पर यह दूसरा तरीका है - ऑर्डर तालिका में product_id फ़ील्ड द्वारा संदर्भित प्रत्येक उत्पाद के लिए कई ऑर्डर हैं। ऑर्डर में दिनांक कॉलम भी varchar प्रकार का है - दिनांक या डेटाटाइम क्यों नहीं?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं लेबल की 2x6 शीट बनाने के लिए TCPDF का उपयोग कैसे कर सकता हूं जिसमें कॉलम या तृतीय-पक्ष वर्गों का उपयोग किए बिना 2D बारकोड शामिल हैं?

  2. मैं प्रत्येक समूह के लिए निश्चित संख्या में पंक्तियों का चयन कैसे करूं?

  3. MySQL:नेस्टेड GROUP_CONCAT

  4. एक MySQL कंपाउंड इंडेक्स (WRT Rails Polymorphic Associations and STI) में चाबियों का निष्पादन क्रम

  5. आगामी जन्मदिन मैसकल और पीएचपी प्राप्त करें