MySQL Join with a subquery to select only one row from joined table -
मान लीजिए कि दो टेबल हैं:
टेबल पार्ट्स:
स्थान पार्टनम Descrip -------- ------- -------- Whse1 एबीसी फ्रोबबिट्ज व्हेस 2 एबीसी फ्रोबबिट्ज़ व्हीएस 3 डीईएफ़ विजेट व्हीएस 3 डीईफ़ विजेट तालिका स्थिति: <पूर्व> स्थान भाग की स्थिति --------- ------- -------------- * डिफ़ॉल्ट * एबीसी तैयार शिप करने के लिए * डिफ़ॉल्ट * डीएफ़ तैयार करने के लिए Whse1 abc Backordered अधिकांश मामलों में, डिफ़ॉल्ट स्थिति का उपयोग किया जाना चाहिए।
स्थिति प्राप्त करने के लिए, क्वेरी शायद जैसे:
SELECT p.Location, p.PartNum, p.Descrip, s.Status से भागों पी LEFT JOIN स्थिति एस एस.पार्टन्यूम = पी। भाग और एस। स्थान = (SELECT मैक्स (स्थान) से स्थिति s1 जहां s1.PartNum = p.PartNum और s1. स्थान ('* डिफ़ॉल्ट *', पी। स्थान)) सवाल यह है, यह है सबसे कुशल (या कम से कम काफी कुशल) ऐसा करने का तरीका? मेरी वास्तविक एप्लिकेशन में एक ही क्वेरी में 7 टेबल शामिल हो सकते हैं।
मुझे लगता है कि आप < कोड> सीमा 1 के साथ आदेश नीचे के रूप में: SELECT p.Location, p.PartNum, p.Descrip, s.Status FROM parts p LEFT JOIN स्थिति एस ओएस। पार्टन्यू = पी। पार्टैम और एस। स्थान = (स्थान का चयन करें स्थिति से एस 1 जहां एस 1। पार्टैम = पी। पार्टम एसडीए द्वारा s1। स्थान एएससी सीमा 1); मान लें कि * डिफ़ॉल्ट * पुनर्प्राप्ति के अनुसार शीर्ष पर आएगा।
Comments
Post a Comment