कम्प्युटर, कार्यक्रम
एउटा उदाहरण, विस्तृत विवरण, त्रुटि को प्रयोग - बायाँ (SQL) सामेल
कुनै पनि वास्तविक संबंधात्मक डाटाबेस मा, सबै जानकारी छुट्टै तालिका मा वितरण गरिएको छ। को टेबल धेरै प्रत्येक अन्य संग संचार योजना मा निस्केको सेट छन्। तथापि, को मद्दतले एसक्युएल प्रश्नहरु यो एकदम सम्भव छैन क्षेत्रीय सम्मिलित डाटा, बीच लिंक राख्नु हो। यो जो तपाईं टेबल को कुनै पनि नम्बर बीचको सम्बन्ध निर्माण गर्न, र जस्तो देखिने disparate जानकारी जडान गर्न अनुमति दिन्छ एक सामेल जडान, प्रदर्शन गरेको छ।
बारेमा बायाँ बाहिरी सामेल यस लेखमा विशेष कुरा हुनेछ। जडान यस प्रकारको विवरण गर्न अघि बढ्नु अघि, केही डाटाबेस तालिकाहरू मा थप गर्नुहोस्।
आवश्यक टेबल तयार
उदाहरणका लागि, हाम्रो डेटाबेस मा, त्यहाँ मानिसहरू र तिनीहरूको अचल सम्पत्ति बारेमा जानकारी छ। जनताहरु (मान्छे), रियल्टी (अचल सम्पत्ति), Realty_peoples (तालिका सम्बन्ध, जो मान्छे के बाट सम्पत्ति पर्छ): सारांश तीन टेबल आधारमा। मान्छे को टेबल मा भण्डारण गरिएका निम्न डाटा मान:
जनताहरु | ||||
आईडी | L_name | F_name | Middle_name | जन्मदिन |
1 | Ivanova | Daria | बी | 07/16/2000 |
2 | Pugin | व्लादिस्लाव | Nikolaevich | 29.01.1986 |
3 | Evgenin | अलेक्जेन्डर | Federovich | 04/30/1964 |
4 | Annina | प्रेम | पी | 31.12.1989 |
5 | Gerasimovsky | आशा | पी | 14.03.1992 |
6 | Gerasimovsky | oleg | Albertovich | 01/29/1985 |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 |
8 | Sukhanovskaya | जूलिया | Us | | 01.10.2001 |
अचल सम्पत्ति:
रियल्टी | |
आईडी | ठेगाना |
1 | अर्कह्याङ्गेल्स्क, उल। Voronin, डी। 7, kv.6 |
2 | अर्कह्याङ्गेल्स्क, उल। Severodvinskaya, डी। 84, Q। 9 BR। 5 |
3 | अर्कह्याङ्गेल्स्क क्षेत्र, सेवेरद्वीन्स्क, सेन्ट। लेनिन, डी। 134, Q। 85 |
4 | अर्कह्याङ्गेल्स्क क्षेत्र, Novodvinsk, उल। Proletarshaya, डी। 16, Q। 137 |
5 | अर्कह्याङ्गेल्स्क, pl। Terekhina, डी। 89, Q। 13 |
सम्बन्ध मान्छे - सम्पत्ति:
Realty_peoples | ||
id_peoples | id_realty | प्रकार |
7 | 3 | कुल संयुक्त स्वामित्व |
8 | 3 | कुल संयुक्त स्वामित्व |
3 | 5 | सम्पत्ति |
7 | 1 | सम्पत्ति |
5 | 4 | साधारण भागहरु |
6 | 4 | साधारण भागहरु |
बाँकी सामेल (SQL) - विवरण
बाँकी मिश्रित निम्न विन्यास छ:
Table_A बायाँ शामिल table_B [{मा predicate} | {Tolbtsov संग spisok_ प्रयोग गरेर}] |
र रूपमा निम्नानुसार schematically:
र यो अभिव्यक्ति "तालिका एक र टेबल बी को लाइन को predicate मात्र मिल्ने पङ्क्तिहरू प्रदर्शन गर्न, अपवाद बिना, सबै चयन रूपमा अनुवाद गरिएको छ। लागि जोडी एक स्ट्रिङ तालिकामा भने तालिका फेला परेन, त्यसपछि परिणामस्वरूप स्तम्भहरू रिक्त भर्न - मान "।
अक्सर, बायाँ जडानमा संकेत गर्दा, प्रयोग गरेर मात्र स्तम्भ नाम, जडान गर्न योजना छ जो नै हुँदा प्रयोग गरिन्छ।
बायाँ सामेल - प्रयोग उदाहरणहरू
बायाँ को जडान हामी, सूचीबाट सबै मानिसहरू भने जनताहरु सम्पत्ति देख्न सक्छौं। बायाँ यो गर्न सामेल SQL क्वेरी उदाहरण:
चयन गर्नुहोस् जनताहरु। * Realty_peoples.id_realty, Realty_peoples.type देखि जनताहरु बायाँ शामिल Realty_peoples मा Peoples.id = Realty_peoples.id_peoples; |
निम्न परिणामहरू:
Query1 | ||||||
आईडी | L_name | F_name | Middle_name | जन्मदिन | id_realty | प्रकार |
1 | Ivanova | Daria | बी | 07/16/2000 | ||
2 | Pugin | व्लादिस्लाव | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | अलेक्जेन्डर | Federovich | 04/30/1964 | 5 | सम्पत्ति |
4 | Annina | प्रेम | पी | 31.12.1989 | ||
5 | Gerasimovsky | आशा | पी | 14.03.1992 | 4 | साधारण भागहरु |
6 | Gerasimovsky | oleg | Albertovich | 01/29/1985 | 4 | साधारण भागहरु |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 | 1 | सम्पत्ति |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 | 3 | कुल संयुक्त स्वामित्व |
8 | Sukhanovskaya | जूलिया | Us | | 01.10.2001 | 3 | कुल संयुक्त स्वामित्व |
हामी देख्न रूपमा, Ivanova Darya Pugin व्लादिस्लाव र Anninoy Lyubovi कुनै अचल सम्पत्ति अधिकार दर्ता।
र के हामी, एक भित्री सामेल आन्तरिक सामेल प्रयोग प्राप्त थियो? तपाईंलाई थाहा, यो गैर-मेल खाने पङ्क्ति समावेश, त्यसैले तीन हाम्रो अन्तिम नमूना बाहिर बस गिरा हुनेछ:
Query1 | ||||||
आईडी | L_name | F_name | Middle_name | जन्मदिन | id_realty | प्रकार |
3 | Evgenin | अलेक्जेन्डर | Federovich | 04/30/1964 | 5 | सम्पत्ति |
5 | Gerasimovsky | आशा | पी | 14.03.1992 | 4 | साधारण भागहरु |
6 | Gerasimovsky | oleg | Albertovich | 01/29/1985 | 4 | साधारण भागहरु |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 | 1 | सम्पत्ति |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 | 3 | कुल संयुक्त स्वामित्व |
8 | Sukhanovskaya | जूलिया | Us | | 01.10.2001 | 3 | कुल संयुक्त स्वामित्व |
यो दोस्रो संस्करण पनि हाम्रो समस्या को अवस्था पूरा गर्ने जस्तो थियो। तर, हामी अर्को मा संलग्न गर्न सुरु भने, र अर्को तालिका, परिणाम देखि तीन मान्छे पहिले नै irretrievably गएको। तसर्थ, व्यवहार मा, धेरै टेबल संयोजन गर्दा थप धेरै अक्सर प्रयोग बायाँ र दायाँ जडान आन्तरिक भन्दा सामेल।
SQL उदाहरण सामेल बाँया हेर्न जारी हुनेछ। हाम्रो घरहरू ठेगाना तालिका संलग्न:
चयन गर्नुहोस् जनताहरु। * Realty_peoples.id_realty, Realty_peoples.type, Realty.address जनताहरु देखि बायाँ Realty_peoples मा Peoples.id = Realty_peoples.id_peoples शामिल बाँयामा Realty.id = Realty_peoples.id_realty रियल्टी शामिल |
अब हामी कानुन मात्र छैन एक प्रकारको, तर पनि अचल सम्पत्ति को ठेगाना प्राप्त:
Query1 | |||||||
आईडी | L_name | F_name | Middle_name | जन्मदिन | id_realty | प्रकार | ठेगाना |
1 | Ivanova | Daria | बी | 07/16/2000 | |||
2 | Pugin | व्लादिस्लाव | Nikolaevich | 29.01.1986 | |||
3 | Evgenin | अलेक्जेन्डर | Federovich | 04/30/1964 | 5 | सम्पत्ति | अर्कह्याङ्गेल्स्क, pl। Terekhina, डी। 89, Q। 13 |
4 | Annina | प्रेम | पी | 31.12.1989 | |||
5 | Gerasimovsky | आशा | पी | 14.03.1992 | 4 | साधारण भागहरु | अर्कह्याङ्गेल्स्क क्षेत्र, Novodvinsk, उल। Proletarshaya, डी। 16, Q। 137 |
6 | Gerasimovsky | oleg | Albertovich | 01/29/1985 | 4 | साधारण भागहरु | अर्कह्याङ्गेल्स्क क्षेत्र, Novodvinsk, उल। Proletarshaya, डी। 16, Q। 137 |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 | 3 | कुल संयुक्त स्वामित्व | अर्कह्याङ्गेल्स्क क्षेत्र, सेवेरद्वीन्स्क, सेन्ट। लेनिन, डी। 134, Q। 85 |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 | 1 | सम्पत्ति | अर्कह्याङ्गेल्स्क, उल। Voronin, डी। 7, kv.6 |
8 | Sukhanovskaya | जूलिया | Us | | 01.10.2001 | 3 | कुल संयुक्त स्वामित्व |
अर्कह्याङ्गेल्स्क क्षेत्र, सेवेरद्वीन्स्क, सेन्ट। लेनिन, डी। 134, Q। 85 |
बायाँ सामेल - त्रुटि को विशिष्ट प्रयोग: अवैध प्रक्रिया तालिका
बायाँ बाहिरी मा बनाएको आधारभूत गल्ती टेबल, दुई सामेल:
- सही डाटा हराएको थियो जसको लागि टेबल क्रम चयन गरियो।
- त्रुटिहरू कहाँ एउटा प्रश्न प्रयोग गर्दा टेबल सामेल।
पहिलो गल्ती विचार गर्नुहोस्। कुनै पनि समस्या को निर्णय गर्न पूर्व स्पष्ट हामी अन्त मा प्राप्त गर्न चाहनुहुन्छ के बुझे गर्नुपर्छ। माथिको उदाहरण मा, हामी मान्छे को हरेक एक एक लिए, तर पूर्ण जसको मालिक फेला परेन 2 नम्बर, अन्तर्गत वस्तु बारे जानकारी गुमाए।
हामी केही ठाउँमा प्रश्न मा टेबल सारियो भने, र सुरु हुनेछ «... रियल्टी बाँकी जनताहरु सामेल ... बाट» कुनै पनि एक सम्पत्ति, हामी तपाईंलाई बारेमा बताउन छैन, छैन हराएको थियो।
तर बायाँ जडान डराउने हुन छैन, पूरा बाह्य, परिणाम र मिलान, र मेल खाने लाइनहरु मा समावेश गरिएको छ जो स्विच गर्नुहोस्।
आखिर, नमूनाको मात्रा अक्सर धेरै ठूलो छ, र अतिरिक्त डाटा वास्तवमा बेकारी छ। आफ्नो उपलब्ध सम्पत्ति सूची वा तिनीहरूको मालिक संग सम्पूर्ण सम्पत्ति सूची (कुनै छ भने) संग सबै मान्छे को: - मुख्य कुरा बाहिर आंकडा तपाईं एक परिणाम प्राप्त गर्न चाहनुहुन्छ के।
बायाँ सामेल - त्रुटि को विशिष्ट प्रयोग: को कहाँ मा अवस्थाको सेट गर्दा अनुरोध सही छ
दोस्रो त्रुटि पनि डाटा को हानि सम्बन्धित, र सधैं तुरुन्तै स्पष्ट छन् छ।
जडानहरू सबै मानिसहरू र आफ्नो अवस्थित सम्पत्ति लागि डाटा प्राप्त मार्फत हामी बाँकी हुँदा गरेको प्रश्न फर्केर जान दिनुहोस्। निम्न सम्झना बायाँ SQL उदाहरण सामेल संग:
देखि जनताहरु बायाँ शामिल Realty_peoples मा Peoples.id = Realty_peoples.id_peoples; |
मानौं हामी अनुरोध स्पष्ट गर्न चाहन्छु र छैन उत्पादन डाटा, गर्छ जहाँ व्यवस्था प्रकार - "सम्पत्ति"। हामी बस थप्न भने, बायाँ SQL, निम्न अवस्था एउटा उदाहरण सामेल प्रयोग गर्दै:
...
जहाँ प्रकार <> "सम्पत्ति" |
हामी किनभने शून्य मूल्य रिक्त निम्नानुसार तुलना छैन, कुनै सम्पत्ति भएका मान्छे मा डाटा गुमाउनु हुनेछ:
Query1 | ||||||
आईडी | L_name | F_name | Middle_name | जन्मदिन | id_realty | प्रकार |
5 | Gerasimovsky | आशा | पी | 14.03.1992 | 4 | साधारण भागहरु |
6 | Gerasimovsky | oleg | Albertovich | 01/29/1985 | 4 | साधारण भागहरु |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 | 3 | कुल संयुक्त स्वामित्व |
8 | Sukhanovskaya | जूलिया | Us | | 01.10.2001 | 3 | कुल संयुक्त स्वामित्व |
यस कारण लागि निरन्तर देखि त्रुटिहरू रोक्न, यो जडान तुरुन्तै चयन अवस्था सेट गर्न सबै भन्दा राम्रो छ। हामी SQL उदाहरण सामेल बाँया संग निम्न विचार गर्न सुझाव।
चयन गर्नुहोस् जनताहरु। * Realty_peoples.id_realty, Realty_peoples.type जनताहरु देखि बायाँ शामिल Realty_peoples मा (Peoples.id = Realty_peoples.id_peoples र प्रकार <> "सम्पत्ति") |
निम्नानुसार परिणाम हुनेछ:
Query1 | ||||||
आईडी | L_name | F_name | Middle_name | जन्मदिन | id_realty | प्रकार |
1 | Ivanova | Daria | बी | 07/16/2000 | ||
2 | Pugin | व्लादिस्लाव | Nikolaevich | 29.01.1986 | ||
3 | Evgenin | अलेक्जेन्डर | Federovich | 04/30/1964 | ||
4 | Annina | प्रेम | पी | 31.12.1989 | ||
5 | Gerasimovsky | आशा | पी | 14.03.1992 | 4 | साधारण भागहरु |
6 | Gerasimovsky | oleg | Albertovich | 01/29/1985 | 4 | साधारण भागहरु |
7 | Sukhanovskaya | न्यायपीठ | ए | 09/25/1976 | 3 | कुल संयुक्त स्वामित्व |
8 | Sukhanovskaya | जूलिया | Us | | 01.10.2001 | 3 | कुल संयुक्त स्वामित्व |
यसरी, बायाँ सरल निम्न द्वारा SQL उदाहरण सामेल हुनुहोस्, हामी सबै मानिसहरूको सूची, थप सार्दा प्राप्त, एक इक्विटी / संयुक्त स्वामित्व यी गुणहरू को एक।
एक निष्कर्षमा रूपमा म फेरि डाटाबेस कुनै पनि जानकारी को एक नमूना responsibly सेवन गर्नुपर्छ कि जोड चाहन्छ। बायाँ हामीलाई अगाडि खुलेको धेरै nuances SQL सरल उदाहरण सामेल हुनुहोस्, को व्याख्या जो एक को - तपाईं पनि आधारभूत प्रश्न लेख्न सुरु गर्नु अघि, तपाईं ध्यान दिएर हामी अन्त मा प्राप्त गर्न चाहनुहुन्छ के बुझ्न पर्छ। शुभकामना छ!
Similar articles
Trending Now