أجهزة الكمبيوتربرمجة

اليسار الانضمام (SQL) - على سبيل المثال، وصفا تفصيليا، واستخدام الخطأ

في أي قاعدة بيانات علائقية حقيقية، يتم توزيع جميع المعلومات عن جدول منفصل. يتم تعيين العديد من الجداول الواردة في خطة التواصل مع بعضهم البعض. ومع ذلك، مع مساعدة من استعلامات SQL فمن الممكن تماما لوضع وصلة بين البيانات، وليس جزءا لا يتجزأ في الدائرة. ويتم ذلك عن طريق إجراء الانضمام الصدد، والذي يسمح لك لبناء علاقة بين أي عدد من الجداول، وحتى ربط المعلومات تبدو متباينة.

هذه المقالة سوف نتحدث تحديدا عن الخارجية اليسرى الانضمام. وقبل الشروع في وصف هذا النوع من الاتصال، إضافة في بعض جداول قاعدة البيانات.

إعداد الجداول اللازمة

على سبيل المثال، في قاعدة البيانات الخاصة بنا، وهناك معلومات عن أشخاص وعقاراتهم. ملخص بناء على الجداول الثلاثة: الشعوب (الناس)، العقارية (العقارية)، Realty_peoples (علاقات الجدول، والناس الذين من ما ممتلكات تعود ل). تحمل البيانات التالية المخزنة في جداول الناس:

الشعوب

الهوية

L_name

F_name

Middle_name

عيد ميلاد

1

ايفانوفا

داريا

B.

2000/07/16

2

بوجين

فلاديسلاف

نيكولايفيتش

1986/01/29

3

Evgenin

الكسندر

Federovich

1964/04/30

4

أنينا

حب

P.

1989/12/31

5

Gerasimovsky

أمل

P.

1992/03/14

6

Gerasimovsky

أوليغ

Albertovich

1985/01/29

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

8

Sukhanovskaya

جوليا

Y.

2001/01/10

العقارات:

عقار

الهوية

عنوان

1

أرخانجيلسك، المجاهدين. فورونين، د. 7، kv.6

2

أرخانجيلسك، المجاهدين. Severodvinskaya، د. 84، س. 9 BR. 5

3

منطقة ارخانجيلسك، سيفيرودفينسك، الحادي والعشرين. لينين، د. 134، ف. 85

4

منطقة ارخانجيلسك، نوفودفينسك، المجاهدين. Proletarshaya، د. 16، س. 137

5

أرخانجيلسك، رر. Terekhina، د. 89، س. 13

العلاقات الناس - الملكية:

Realty_peoples

id_peoples

id_realty

نوع

7

3

مجموع ملكية مشتركة

8

3

مجموع ملكية مشتركة

3

5

ممتلكات

7

1

ممتلكات

5

4

الأجزاء المشتركة

6

4

الأجزاء المشتركة

غادر انضمام (SQL) - الوصف

مجمع تركت لديه بناء الجملة التالي:

Table_A LEFT JOIN table_B [{ON المسند} | {يستعمل spisok_ مع tolbtsov}]

وتخطيطي على النحو التالي:

وترجم هذا التعبير بأنه "تحديد الكل دون استثناء، خط الجدول ألف والجدول B لعرض فقط الصفوف مطابقة للأصلية. إذا تم العثور على الجدول في جدول سلسلة لأزواج A، ثم ملء الأعمدة مما أدى لاغية - القيم ".

في أغلب الأحيان، عندما يشار اتصال غادر ON، يستخدم فقط باستخدام عندما أسماء الأعمدة، التي تم التخطيط لإجراء الاتصال هي نفسها.

اليسار الانضمام - أمثلة على استخدام

مع اتصال من اليسار يمكننا أن نرى، كل الناس من القائمة إذا كان هناك ممتلكات الشعوب. للقيام بذلك في اليسار الانضمام SQL سبيل المثال الاستعلام:

الشعوب SELECT *، Realty_peoples.id_realty، Realty_peoples.type

من الشعوب LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples.

مع النتائج التالية:

Query1

الهوية

L_name

F_name

Middle_name

عيد ميلاد

id_realty

نوع

1

ايفانوفا

داريا

B.

2000/07/16

2

بوجين

فلاديسلاف

نيكولايفيتش

1986/01/29

3

Evgenin

الكسندر

Federovich

1964/04/30

5

ممتلكات

4

أنينا

حب

P.

1989/12/31

5

Gerasimovsky

أمل

P.

1992/03/14

4

الأجزاء المشتركة

6

Gerasimovsky

أوليغ

Albertovich

1985/01/29

4

الأجزاء المشتركة

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

1

ممتلكات

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

3

مجموع ملكية مشتركة

8

Sukhanovskaya

جوليا

Y.

2001/01/10

3

مجموع ملكية مشتركة

كما نرى، ايفانوفا داريا بوجين فلاديسلاف وAnninoy Lyubovi لا مسجل الحقوق العينية العقارية.

وما تلقيناه، وذلك باستخدام صلة داخلية صلة داخلية؟ كما تعلمون، فإنه يستثني الصفوف غير مطابقة، لذلك ثلاثة من العينة النهائية لدينا ببساطة إسقاط:

Query1

الهوية

L_name

F_name

Middle_name

عيد ميلاد

id_realty

نوع

3

Evgenin

الكسندر

Federovich

1964/04/30

5

ممتلكات

5

Gerasimovsky

أمل

P.

1992/03/14

4

الأجزاء المشتركة

6

Gerasimovsky

أوليغ

Albertovich

1985/01/29

4

الأجزاء المشتركة

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

1

ممتلكات

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

3

مجموع ملكية مشتركة

8

Sukhanovskaya

جوليا

Y.

2001/01/10

3

مجموع ملكية مشتركة

ويبدو أن النسخة الثانية كما يلبي شروط مشكلتنا. ومع ذلك، إذا بدأنا لنعلق على آخر، وجدول آخر، ثلاثة أشخاص من نتيجة بالفعل ذهب الى غير رجعة. لذلك، من الناحية العملية، عند الجمع بين جداول متعددة أكثر من ذلك بكثير في كثير من الأحيان استخدام اليسار واليمين اتصال من صلة داخلية.

سوف نواصل البحث الى اليسار الانضمام أمثلة SQL. إرفاق جدول مع عناوين بيوتنا:

الشعوب SELECT *، Realty_peoples.id_realty، Realty_peoples.type، Realty.address

من الشعوب

LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples

LEFT JOIN العقارات ON Realty.id = Realty_peoples.id_realty

ونحن الآن ليس فقط الحصول على نوع من القانون، ولكن أيضا عنوان العقار:

Query1

الهوية

L_name

F_name

Middle_name

عيد ميلاد

id_realty

نوع

عنوان

1

ايفانوفا

داريا

B.

2000/07/16

2

بوجين

فلاديسلاف

نيكولايفيتش

1986/01/29

3

Evgenin

الكسندر

Federovich

1964/04/30

5

ممتلكات

أرخانجيلسك، رر. Terekhina، د. 89، س. 13

4

أنينا

حب

P.

1989/12/31

5

Gerasimovsky

أمل

P.

1992/03/14

4

الأجزاء المشتركة

منطقة ارخانجيلسك، نوفودفينسك، المجاهدين. Proletarshaya، د. 16، س. 137

6

Gerasimovsky

أوليغ

Albertovich

1985/01/29

4

الأجزاء المشتركة

منطقة ارخانجيلسك، نوفودفينسك، المجاهدين. Proletarshaya، د. 16، س. 137

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

3

مجموع ملكية مشتركة

منطقة ارخانجيلسك، سيفيرودفينسك، الحادي والعشرين. لينين، د. 134، ف. 85

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

1

ممتلكات

أرخانجيلسك، المجاهدين. فورونين، د. 7، kv.6

8

Sukhanovskaya

جوليا

Y.

2001/01/10

3

مجموع ملكية مشتركة

منطقة ارخانجيلسك، سيفيرودفينسك، الحادي والعشرين. لينين، د. 134، ف. 85

اليسار الانضمام - استخدام نموذجي من الخطأ: جدول الإجراء غير صالح

الأخطاء الأساسية التي قدمت في الخارجية اليسرى الانضمام الجداول، وهما:

  1. اختيار صحيح ترتيب الجداول التي تم فقدان البيانات.
  2. حيث الأخطاء عند استخدام استعلام مع ربط الجداول.

النظر في الخطأ الأول. قبل صدور قرار من أي مشكلة ينبغي أن يكون مفهوما بوضوح أن ما نريد أن يحصل في نهاية المطاف. في هذا المثال أعلاه، أخذنا كل واحد من الناس، ولكن فقدت تماما من المعلومات حول الكائن تحت رقم 2، الذي لم يتم العثور على المالك.

إذا انتقلنا الجداول في استعلام في بعض الأماكن، وستبدأ مع «... من العقارات اليسار الانضمام الشعوب ...» أي خاصية واحدة، ونحن لن فقدوا، فلن نقول عن الناس.

ولكن لا يكون خائفا من الاتصال اليسرى، والتحول إلى كامل الخارجية، والتي تم تضمينها في نتيجة والمطابقة، وليس خطوط مطابقة.

بعد كل شيء، حجم العينة غالبا ما تكون كبيرة جدا، وبيانات إضافية لا طائل منه في الواقع. الشيء الرئيسي - لمعرفة ما كنت ترغب في الحصول على نتيجة لذلك: لجميع الناس مع قائمة الممتلكات المتاحة لديها أو قائمة ممتلكات أسرة مع أصحابها (إن وجدت).

اليسار الانضمام - استخدام نموذجي من الخطأ: طلب هو الصحيح عند وضع الشروط في أين

ويرتبط الخطأ الثاني أيضا مع فقدان البيانات، وليست دائما واضحة على الفور.

دعونا نعود إلى الاستعلام عندما غادرنا عبر وصلات البيانات الواردة لجميع الناس والممتلكات الحالية. تذكر ما يلي مع انضمام اليسار المثال SQL:

من الشعوب LEFT JOIN Realty_peoples ON Peoples.id = Realty_peoples.id_peoples.

لنفترض أننا نريد لتوضيح الطلب ولا إخراج البيانات، حيث نوع القانون - "الملكية". إذا نحن ببساطة إلحاق، وذلك باستخدام ترك الانضمام مزود، مثالا على الشرط التالي:

...

حيث نوع <> "الملكية"

نحن سوف تفقد البيانات الموجودة على الناس الذين ليس لديهم ممتلكات، لأنه لم يتم مقارنة اغية قيمة خالية على النحو التالي:

Query1

الهوية

L_name

F_name

Middle_name

عيد ميلاد

id_realty

نوع

5

Gerasimovsky

أمل

P.

1992/03/14

4

الأجزاء المشتركة

6

Gerasimovsky

أوليغ

Albertovich

1985/01/29

4

الأجزاء المشتركة

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

3

مجموع ملكية مشتركة

8

Sukhanovskaya

جوليا

Y.

2001/01/10

3

مجموع ملكية مشتركة

لمنع الأخطاء التي تحدث من لهذا السبب، فمن الأفضل لضبط حالة اختيار فورا عند الاتصال. نقترح أن تنظر في ما يلي مع اليسار الانضمام سبيل المثال SQL.

الشعوب SELECT *، Realty_peoples.id_realty، Realty_peoples.type

من الشعوب

LEFT JOIN Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples واكتب <> "الملكية")

ستكون النتيجة على النحو التالي:

Query1

الهوية

L_name

F_name

Middle_name

عيد ميلاد

id_realty

نوع

1

ايفانوفا

داريا

B.

2000/07/16

2

بوجين

فلاديسلاف

نيكولايفيتش

1986/01/29

3

Evgenin

الكسندر

Federovich

1964/04/30

4

أنينا

حب

P.

1989/12/31

5

Gerasimovsky

أمل

P.

1992/03/14

4

الأجزاء المشتركة

6

Gerasimovsky

أوليغ

Albertovich

1985/01/29

4

الأجزاء المشتركة

7

Sukhanovskaya

هيئة المحلفين

A.

1976/09/25

3

مجموع ملكية مشتركة

8

Sukhanovskaya

جوليا

Y.

2001/01/10

3

مجموع ملكية مشتركة

وهكذا، وذلك باتباع بسيطة إلى اليسار الانضمام سبيل المثال SQL، تلقينا قائمة بأسماء جميع الناس، والانتقال أبعد من ذلك، واحدة من هذه الخصائص في / الملكية المشتركة الأسهم.

وختاما أود أن أؤكد مرة أخرى أن عينة من أي معلومات من قاعدة البيانات يجب أن تؤخذ بشكل مسؤول. العديد من الفروق الدقيقة فتحت أمامنا مع اليسار الانضمام SQL مثال بسيط، والتفسير واحدة منها - قبل أن تبدأ في الكتابة حتى الاستعلام الأساسي، يجب بعناية لفهم ما نريد أن يحصل في نهاية المطاف. حظا سعيدا!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ar.delachieve.com. Theme powered by WordPress.