खोज…


परिचय

एक से कई का विचार (1: M) पंक्तियों के एक दूसरे से जुड़ने की चिंता करता है, विशेष रूप से ऐसे मामले जहां एक तालिका में एक पंक्ति दूसरी पंक्ति में कई पंक्तियों से मेल खाती है।

1: M एक-दिशात्मक है, अर्थात जब भी आप 1: M संबंध बनाते हैं, तो आप किसी अन्य तालिका में 'कई' पंक्तियों का चयन करने के लिए 'एक' पंक्ति का उपयोग कर सकते हैं, लेकिन आप एक 'कई' पंक्ति का उपयोग नहीं कर सकते एकल 'एक' पंक्ति से अधिक का चयन करें।

टिप्पणियों

अधिकांश मामलों के लिए, 1: M संबंध के साथ काम करने के लिए हमें प्राथमिक कुंजी और विदेशी कुंजी को समझना होगा।

एक प्राथमिक कुंजी एक तालिका में एक स्तंभ है जहां उस स्तंभ की कोई भी एक पंक्ति एक एकल इकाई का प्रतिनिधित्व करती है, या, प्राथमिक कुंजी स्तंभ में एक मान का चयन करने से ठीक एक पंक्ति में परिणाम होता है। उपरोक्त उदाहरणों का उपयोग करते हुए, एक EMP_ID एक एकल कर्मचारी का प्रतिनिधित्व करता है। यदि आप किसी एकल EMP_ID के लिए क्वेरी करते हैं, तो आपको संबंधित कर्मचारी का प्रतिनिधित्व करने वाली एक पंक्ति दिखाई देगी।

एक विदेशी कुंजी एक तालिका में एक स्तंभ है जो एक और अलग तालिका की प्राथमिक कुंजी से मेल खाती है। ऊपर हमारे उदाहरण से, EMPLOYEES तालिका में MGR_ID एक विदेशी कुंजी है। आम तौर पर दो तालिकाओं में शामिल होने के लिए, आप उन्हें एक तालिका की प्राथमिक कुंजी और दूसरे में विदेशी कुंजी के आधार पर जोड़ देंगे।

उदाहरण कंपनी टेबल्स

एक कंपनी पर विचार करें जहां हर कर्मचारी जो एक प्रबंधक है, 1 या अधिक कर्मचारियों का प्रबंधन करता है, और प्रत्येक कर्मचारी के पास केवल 1 प्रबंधक होता है।

इसके परिणामस्वरूप दो तालिकाएँ हैं:

कर्मचारियों

EMP_ID पहला नाम उपनाम MGR_ID
E01 छोकरा एप्पलसीड एम 02
E02 आयलैंड मैकलीमोर एम 01
E03 कोल्बी कागजी कार्रवाई एम 03
E04 रॉन Sonswan एम 01

प्रबंधकों

MGR_ID पहला नाम उपनाम
एम 01 जोर मैक्वीन
एम 02 गौ पैंट
एम 03 बैरल जोन्स

एकल प्रबंधक द्वारा प्रबंधित कर्मचारी प्राप्त करें

SELECT e.emp_id , e.first_name , e.last_name FROM employees e INNER JOIN managers m ON m.mgr_id = e.mgr_id WHERE m.mgr_id = 'M01' ;

का परिणाम:

EMP_ID पहला नाम उपनाम
E02 आयलैंड मैकलीमोर
E04 रॉन Sonswan

अंततः, हम जिस प्रत्येक प्रबंधक के लिए क्वेरी करते हैं, उसके लिए हम 1 या अधिक कर्मचारी वापस लौट आएंगे।

एकल कर्मचारी के लिए प्रबंधक प्राप्त करें

इस उदाहरण को देखते हुए उपरोक्त उदाहरण तालिकाओं से परामर्श करें।

SELECT m.mgr_id , m.first_name , m.last_name FROM managers m INNER JOIN employees e ON e.mgr_id = m.mgr_id WHERE e.emp_id = 'E03' ;

MGR_ID पहला नाम उपनाम
एम 03 बैरल जोन्स

जैसा कि यह उपरोक्त उदाहरण का उलटा है, हम जानते हैं कि हम जिस भी कर्मचारी के लिए क्वेरी करते हैं, उसके लिए हम केवल एक ही प्रबंधक देखेंगे।



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow