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

एसक्यूएल जहां शर्त के साथ कॉलम पर न्यूनतम मान वाली केवल पंक्तियों का चयन करें

आप उन उत्पादों के न्यूनतम ऑर्डर इंडेक्स का चयन करके शुरू कर सकते हैं जिन्हें इस तरह अस्वीकार नहीं किया गया है:

SELECT productId, MIN(orderIndex)
FROM myTable
WHERE rejected = 0
GROUP BY productId;

एक बार आपके पास यह हो जाने पर, आप इसे अपनी मूल तालिका के साथ इस शर्त पर शामिल कर सकते हैं कि उत्पाद आईडी और मिनीऑर्डर इंडेक्स मेल खाते हैं:

SELECT m.id, m.productId, m.orderIndex
FROM myTable m
JOIN(
  SELECT productId, MIN(orderIndex) AS minOrderIndex
  FROM myTable
  WHERE rejected = 0
  GROUP BY productId) tmp ON tmp.productId = m.productId AND tmp.minOrderIndex = m.orderIndex;

मेरी क्वेरी यह धारणा बनाती है कि कोई डुप्लिकेट (उत्पाद आईडी, ऑर्डर इंडेक्स) जोड़े नहीं हैं। जब तक वे मौजूद नहीं हैं, यह ठीक काम करेगा। यह रहा एक SQL Fiddle उदाहरण।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONCAT एकाधिक फ़ील्ड को एक फ़ील्ड में, एकल स्थान पर

  2. MySQL में संग्रहित प्रक्रिया कैसे बनाएं

  3. अजगर 2.6+ पर mysqldb (win32)

  4. XAMPP MySQL - सेटिंग ft_min_word_len

  5. विभिन्न डेटाबेस का उपयोग कर डेटाबेस और स्कीमा के बीच अंतर?