2012-11-13 19 views
20

कृपया मुझे एक मेज, जहां एक विशेष क्षेत्र मिनट महत्व है से डेटा का चयन करना चाहते है का चयन करने के लिए कैसे, मैं इस कोशिश की है MySQL के साथ अच्छा नहीं, कृपया कोई मदद करें? धन्यवादMYSQL डेटा जहां एक क्षेत्र के लिए एक न्यूनतम मूल्य

+4

इस सवाल कई व्याख्या कर सकते हैं, तो आप परिणामों के साथ उदाहरण के रिकॉर्ड दे सकते हैं के सभी रिकॉर्ड को प्रदर्शित करेगा? –

उत्तर

41

इससे आपको परिणाम मिलेगा जिसमें सभी रिकॉर्डों की न्यूनतम कीमत होगी। (यह मानते हुए मैं सवाल समझ में)

SELECT * 
FROM pieces 
WHERE price = (SELECT MIN(price) FROM pieces) 
+0

आपका स्वागत है: डी –

+3

यह धीमा हो सकता है। – abenevaut

28

यह मैं इसे कैसे करना होगा है

SELECT * FROM pieces ORDER BY price ASC LIMIT 1 

आप एक से अधिक पंक्तियों का चयन करने की कोशिश कर रहे हैं, तो जहां उनमें से प्रत्येक मई एक ही कीमत है (जो न्यूनतम है) तो @ जॉनवू का जवाब पर्याप्त होना चाहिए।

असल में यहां हम केवल एएससीएंडिंग ऑर्डर (बढ़ते हुए) में कीमत से परिणाम का परिणाम दे रहे हैं और परिणाम की पहली पंक्ति ले रहे हैं।

2

यह भी काम करता है:

SELECT 
    pieces.* 
FROM 
    pieces inner join (select min(price) as minprice from pieces) mn 
    on pieces.price = mn.minprice 

(के बाद से इस संस्करण में जहां एक सबक्वेरी के साथ शर्त है, यह किया जा सकता है एक यदि आप तालिका अद्यतन करने की आवश्यकता नहीं है, लेकिन आप केवल मैं चुनने की आवश्यकता है जॉन वू समाधान का उपयोग करने) सिफारिश करेंगे

+0

ऐसा लगता है कि इसे एक दृश्य में पुन: उपयोग किया जा सकता है –

3

उपयोग होने मिन (...)

कुछ की तरह:

SELECT MIN(price) AS price, pricegroup 
FROM articles_prices 
WHERE articleID=10 
GROUP BY pricegroup 
HAVING MIN(price) > 0; 
1

वास्तव में, निर्भर करता है कि आप क्या प्राप्त करना चाहते हैं: - बस मिनट मूल्य:

SELECT MIN(price) FROM pieces 
  • एक तालिका (गुणकों पंक्तियाँ) मिनट मूल्य whith: के रूप में जॉन वू ऊपर कहा है।

  • लेकिन, एक ही मिनट मूल्य के साथ अलग अलग पंक्तियों हो सकता है, सबसे अच्छा है, उन्हें एक और स्तंभ से आदेश है, क्योंकि के बाद या बाद में आप इसे करने की आवश्यकता होगी (जॉन वू answere से शुरू):

    चुनें * टुकड़े से कहां मूल्य = (चयन मिन (कीमत) टुकड़े से) द्वारा आदेश स्टॉक एएससी

-4

बनाने के यह सरल

चुनें *, मिन (कीमत) prod सीमा से 1

  • रखो * तो यह न्यूनतम मूल्य
+4

यह वास्तव में नहीं होगा। * यादृच्छिक मूल्य प्रदर्शित करेगा, जरूरी नहीं कि उस मिनट से जुड़ी पंक्ति से। –

+2

लॉरेनटू एल के साथ पूरी तरह से सहमत हैं: अधिकांश अन्य डीबीएमएस (फिर MySQL) आपको उचित 'ग्रुप बाय' क्लॉज के बिना ऐसी क्वेरी चलाने की अनुमति नहीं देंगे। –

+0

यह न्यूनतम मूल्य के लिए एक यादृच्छिक पंक्ति का चयन करेगा और यह नहीं पूछा गया था! –