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

एक सहसंबद्ध सबक्वेरी में MySQL LIMIT

यह greatest-n-per-group . का एक रूपांतर है समस्या जो बार-बार सामने आती है।

आप सिंगल रो फॉर्म फिनिशटियरप्राइस चाहते हैं (इसे p1 कहते हैं) ), फ़िनिशऑप्शन से मेल खाते हुए और सबसे बड़ी मात्रा के साथ, लेकिन फिर भी ProductOptionTier की मात्रा से कम या उसके बराबर।

ऐसा करने का एक तरीका दूसरी पंक्ति से मिलान करने का प्रयास करना है (p2 ) फ़िनिशटियरप्राइस से, जिसमें समान फ़िनिशऑप्शन और अधिक मात्रा होगी। यदि ऐसी कोई पंक्ति मौजूद नहीं है (बाहरी जुड़ाव का उपयोग करें और परीक्षण करें कि यह NULL है), तो p1 द्वारा पाई गई पंक्ति सबसे महान है।

SELECT Product.Name, ProductOption.Name, a.Qty, a.Price, SheetSize.UpgradeCost,
        FinishType.Name, FinishOption.Name, FinishTierPrice.Qty, FinishTierPrice.Price
FROM `Product`
    JOIN `ProductOption`
        ON Product.idProduct = ProductOption.Product_idProduct
    JOIN `ProductOptionTier` AS a
        ON a.ProductOption_idProductOption = ProductOption.idProductOption
    JOIN `PaperSize`
        ON PaperSize.idPaperSize = ProductOption.PaperSize_idPaperSize
    JOIN `SheetSize`
        ON SheetSize.PaperSize_idPaperSize = PaperSize.idPaperSize
    JOIN `FinishOption`
        ON FinishOption.Product_idProduct = Product.idProduct
    JOIN `FinishType`
        ON FinishType.idFinishType = FinishOption.Finishtype_idFinishType
    JOIN `FinishTierPrice` AS p1
        ON p1.FinishOption_idFinishOption = FinishOption.idFinishOption
        AND p1.Qty <= a.Qty
    LEFT OUTER JOIN `FinishTierPrice` AS p2
        ON p2.FinishOption_idFinishOption = FinishOption.idFinishOption
        AND p2.Qty <= a.Qty AND (p2.Qty > p1.Qty OR p2.Qty = p1.Qty 
            AND p2.idFinishTierPrice > p1.idFinishTierPrice)
WHERE Product.idProduct = 1
    AND p2.idFinishTierPrice IS NULL



  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 तालिका को गलत तरीके से एन्कोड किए गए डेटा के साथ UTF-8 में कनवर्ट करना

  2. 60 मिलियन प्रविष्टियाँ, एक निश्चित महीने से प्रविष्टियाँ चुनें। डेटाबेस का अनुकूलन कैसे करें?

  3. MySQL पूर्ण शामिल हों?

  4. मैसकल:डेटा के साथ डंप डेटाबेस

  5. एसक्यूएल क्वेरी से कई पेज बनाना