मैं SQL सर्वर 2008 का उपयोग कर रहा हूं और मेरे पास 3 टेबल, x
, y
और z
हैं। y
x
और z
के बीच कई से अधिक संबंध बनाने के लिए मौजूद है।कई से कई रिश्तों में अधिकतम मूल्य
x y z
-- -- --
id xid id
zid sort
उपरोक्त सभी फ़ील्ड int
हैं।
मैं अच्छा प्रदर्शन करने वाले विधि किसी भी x
के लिए उच्चतम sort
साथ z
पाने की (denormalising को छोड़कर) मिल जाए, और सभी तीन तालिकाओं से सभी क्षेत्रों लौटना चाहते।
नमूना डेटा:
x: id
--
1
2
y: xid zid
--- ---
1 1
1 2
1 3
2 2
z: id sort
-- ----
1 5
2 10
3 25
परिणाम सेट होना चाहिए
xid zid
--- ---
1 3
2 2
ध्यान दें कि यदि एक से अधिक z
ही उच्चतम sort
मूल्य के साथ मौजूद है, तो मैं अभी भी केवल x
प्रति एक पंक्ति चाहते हैं।
ध्यान दें कि मेरी वास्तविक दुनिया की स्थिति में, मेरे तीन सेट में अन्य फ़ील्ड हैं जो मुझे अपने परिणाम सेट में चाहिए।
मुझे लगता है आप वास्तविक दुनिया स्थिति के समाधान के बाद कर रहे हैं? मेरा सुझाव है कि आप प्रत्येक तालिका के लिए कुछ अतिरिक्त फ़ील्ड के साथ अपना प्रश्न अपडेट करें, और परिभाषित करें कि आप अपना परिणाम क्या चाहते हैं-देखने के लिए सेट करें। – MPritchard
बस इस प्रश्न को जोड़ने के लिए। क्या आपका डेटाबेस डिज़ाइन निश्चित है या अभी भी कार्यान्वित किया जा रहा है? मुझे यह अजीब लगता है कि आपका "सॉर्ट" जेड टेबल में है और वाई टेबल में नहीं है। मुझे आमतौर पर पता चलता है कि इस तरह के कई संबंधों में से कई के पास अक्सर "जे" टेबल पर "z" रुचि हो सकती है। अगर मैं गलत हूं, तो मुझे अनदेखा करें, संदर्भ के बिना जानना असंभव है। –
यह अभी भी लागू किया जा रहा है और मैं जो कहता हूं उससे सहमत हूं, लेकिन जो बनाया जा रहा है उसके संदर्भ में, क्रमशः 'z' तालिका पर होना चाहिए और होना चाहिए। – enashnash