sql server 2008 - joining views with previous left joins and not multiplying rows -
मेरे पास प्रपत्र के 2 विचार हैं:
- दृश्य 1 चुनें foo.id AS Id foo LEFT JOIN बार से foo.id = bar.id पर - परिणाम आईडी 1 1 2 2 ... --View2 SELECT foo.id के रूप में आईडी Foo LEFT JOIN MANCHU ON foo.id = MANCHU.ID - परिणाम आईडी 1 1 2 2 ...
अब मैं दो दृश्यों में शामिल होना चाहता हूं ताकि व्यू 1 से पंक्ति # 1 व्यू 2 की # 1 पंक्ति में शामिल हो।
< P> यदि मैं View1.id = View2.id पर शामिल हूं, तो पंक्तियां एक-दूसरे से गुणा करेंगी, जो कि मैं क्या नहीं चाहता। क्या कोई तरीका है कि मैं प्रत्येक दृश्य में एक अनन्य संख्या के साथ एक कॉलम जोड़ सकता हूं जिसे मैं शामिल कर सकता हूं? या किसी अन्य समाधान?अग्रिम धन्यवाद।
आप निम्न के रूप में जोड़ सकते हैं प्रत्येक दृश्य में एक कॉलम:
ROW_NUMBER () से अधिक (आईडी के अनुसार क्रम) अनुक्रम के रूप में
आपका दृश्य जोड़ने के बाद View1 होगा। = View2.sequence
लेकिन, आपका इरादा अभी भी अस्पष्ट है ऐसा प्रतीत होता है कि आप प्रत्येक दृश्य में पंक्ति 1 में शामिल होना चाहते हैं, और प्रत्येक दृश्य में पंक्ति 2 में शामिल होना चाहते हैं, आदि। आप ने जो दिखाया है उसके साथ, आप क्वेरीज़ डुप्लिकेट आईडी मानों के लिए पंक्ति अनुक्रम की गारंटी नहीं देते हैं।
Comments
Post a Comment