КомпьютерПрограмчлалын

Зүүн нэгдэх (SQL) - үлгэр жишээг, нарийвчилсан тодорхойлолт, алдааны ашиглах

ямар нэг бодит хамааралт өгөгдлийн сан дотор бүх мэдээллийг тусад нь ширээн дээр тархсан байна. хүснэгтүүдэд олон бие биетэйгээ холбоо схемийн-д заасан байгаа. Гэсэн хэдий ч, тусламж нь SQL асуулга энэ нь мэдээлэл, хэлхээ нь биш суулгагдсан хооронд холбоос тавих нь маш боломжтой юм. Энэ нь нэгдэх холболт, та хүснэгтүүдийн аль тооны хоорондох харилцааг бий болгох, тэр ч байтугай мэт өөр өөр мэдээллийг холбох боломж олгодог хийж гүйцэтгэнэ.

Зүүн гадна нэгдэх тухай Энэ нийтлэл нь тусгайлан ярилцах болно. холбогдуулан энэ төрлийн тодорхойлолтыг өмнө та, зарим мэдээллийн баазын хүснэгтүүдэд нэмнэ.

шаардлагатай ширээ бэлдэх

Жишээ нь, манай мэдээллийн санд тэнд ард түмэн, үл хөдлөх хөрөнгийн тухай мэдээлэл байна. Peoples (хүн), Realty (үл хөдлөх хөрөнгө), Realty_peoples (хүснэгт харилцаа, хүмүүс ямар нь үл хөдлөх хөрөнгийн хамаарах): Товч агуулга гурван хүснэгтийн дээр суурилсан. хүмүүсийн ширээ хадгалагдсан дараах өгөгдлийг авч үзье:

Peoples

ID

L_name

F_name

Middle_name

Төрсөн өдөр

1

Ivanova

Daria

Б.

07/16/2000

2

Pugin

Владислав

Николаевич

29.01.1986

3

Evgenin

Александр

Federovich

04/30/1964

4

Annina

хайртай

П.

31.12.1989

5

Gerasimovsky

гэдэгт найдаж байна

П.

14.03.1992

6

Gerasimovsky

Олег

Albertovich

01/29/1985

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

8

Sukhanovskaya

Жулиа

Y.

01.10.2001

Үл хөдлөх хөрөнгө:

Realty

ID

хаяг

1

Архангельск, ул. Воронин, D. 7 kv.6

2

Архангельск, ул. Severodvinskaya, D. 84, Q. 9 BR. 5

3

Архангельск бүс нутаг, Severodvinsk, ST. Ленин, D. 134, Q. 85

4

Архангельск бүс нутаг, Novodvinsk, ул. Proletarshaya, D. 16, Q. 137

5

Архангельск, PL. Terekhina, D. 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 [{ТУХАЙ үндсэн} ЭЛСЭЭРЭЙ | {Tolbtsov нь spisok_ АШИГЛАХ}]

Тэгээд дараах байдлаар schematically:

Мөн энэ илэрхийлэл нь "А ба В Хүснэгт Хүснэгт шугам үндсэн зөвхөн тохирсон мөр харуулах, мэдээлэл сонгоно уу эс тооцвол ямар орчуулсан байна. "Утгуудыг - ширээний хос А мөр хүснэгтэд олдсон юм бол үр дүнд нь багана Null дүүргэ.

Ихэнх тохиолдолд, зүүн холболт дээр заасан үед ашиглах зөвхөн багана нэр, холболт хийх төлөвлөж байна ижил байгаа үед хэрэглэгддэг.

Зүүн нэгдэхийг - Хэрэглэх жишээ

Зүүн холбох нь бид жагсаалтаас бүх ард иргэдийн эд хөрөнгө байдаг бол харж болно. SQL хайлтын жишээ нь нэгдэх зүүн Үүнийг хийхийн тулд:

SELECT Peoples. * Realty_peoples.id_realty, Realty_peoples.type

Peoples ЗҮҮН ЭЛСЭЭРЭЙ FROM Realty_peoples ТУХАЙ Peoples.id = Realty_peoples.id_peoples;

дараах үр дүн нь:

Query1

ID

L_name

F_name

Middle_name

Төрсөн өдөр

id_realty

төрөл

1

Ivanova

Daria

Б.

07/16/2000

2

Pugin

Владислав

Николаевич

29.01.1986

3

Evgenin

Александр

Federovich

04/30/1964

5

үл хөдлөх хөрөнгийн

4

Annina

хайртай

П.

31.12.1989

5

Gerasimovsky

гэдэгт найдаж байна

П.

14.03.1992

4

Нийтлэг хэсэг

6

Gerasimovsky

Олег

Albertovich

01/29/1985

4

Нийтлэг хэсэг

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

1

үл хөдлөх хөрөнгийн

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

3

Нийт хамтарсан эзэмшлийн

8

Sukhanovskaya

Жулиа

Y.

01.10.2001

3

Нийт хамтарсан эзэмшлийн

Бидний харж байгаа шиг, Ivanova Дарья Pugin Владислав болон Anninoy Lyubovi Ямар ч үл хөдлөх хөрөнгийн эрхийн бүртгэлтэй.

Тэгээд ямар нэгэн дотоод Өвөр нэгдэх нэгдэх ашиглан бид хүлээн авсан юм бэ? Та бүхний мэдэж байгаагаар, энэ нь төрийн бус тохирсон мөр оруулаагүй, тийм болохоор бидний эцсийн дээж гарч гурван зүгээр л унасан байх болно:

Query1

ID

L_name

F_name

Middle_name

Төрсөн өдөр

id_realty

төрөл

3

Evgenin

Александр

Federovich

04/30/1964

5

үл хөдлөх хөрөнгийн

5

Gerasimovsky

гэдэгт найдаж байна

П.

14.03.1992

4

Нийтлэг хэсэг

6

Gerasimovsky

Олег

Albertovich

01/29/1985

4

Нийтлэг хэсэг

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

1

үл хөдлөх хөрөнгийн

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

3

Нийт хамтарсан эзэмшлийн

8

Sukhanovskaya

Жулиа

Y.

01.10.2001

3

Нийт хамтарсан эзэмшлийн

Энэ нь хоёр дахь хувилбар ч бас бидний асуудлын нөхцөлийг үгийн утганд яг тохирч гэсэн юм шиг санагдаж байна. Гэсэн хэдий ч, хэрэв бид өөр дээр хавсаргах эхлэх, өөр нэг хүснэгт, үр дүнд нь гурван хүн аль хэдийн буцааж авагдах боломжгүйгээр алга. Өвөр илүү Тиймээс практикт олон хүснэгтүүдийг нэгтгэх үед илүү их хэрэглэгддэг нь зүүн болон баруун холболт нийлүүлэх.

SQL жишээ нэгдэх зүүн тийш харж байх болно. Манай байшин хаяг бүхий хүснэгтийг хавсаргана:

SELECT Peoples. * Realty_peoples.id_realty, Realty_peoples.type, Realty.address

ард түмнүүдээс

ЗҮҮН Realty_peoples ТУХАЙ Peoples.id = Realty_peoples.id_peoples ЭЛСЭЭРЭЙ

ЗҮҮН Realty.id = Realty_peoples.id_realty ТУХАЙ Realty ЭЛСЭЭРЭЙ

Одоо бид хууль нь зөвхөн нэг төрлийн, бас үл хөдлөх хөрөнгийн хаяг авах:

Query1

ID

L_name

F_name

Middle_name

Төрсөн өдөр

id_realty

төрөл

хаяг

1

Ivanova

Daria

Б.

07/16/2000

2

Pugin

Владислав

Николаевич

29.01.1986

3

Evgenin

Александр

Federovich

04/30/1964

5

үл хөдлөх хөрөнгийн

Архангельск, PL. Terekhina, D. 89, Q. 13

4

Annina

хайртай

П.

31.12.1989

5

Gerasimovsky

гэдэгт найдаж байна

П.

14.03.1992

4

Нийтлэг хэсэг

Архангельск бүс нутаг, Novodvinsk, ул. Proletarshaya, D. 16, Q. 137

6

Gerasimovsky

Олег

Albertovich

01/29/1985

4

Нийтлэг хэсэг

Архангельск бүс нутаг, Novodvinsk, ул. Proletarshaya, D. 16, Q. 137

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

3

Нийт хамтарсан эзэмшлийн

Архангельск бүс нутаг, Severodvinsk, ST. Ленин, D. 134, Q. 85

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

1

үл хөдлөх хөрөнгийн

Архангельск, ул. Воронин, D. 7 kv.6

8

Sukhanovskaya

Жулиа

Y.

01.10.2001

3

Нийт хамтарсан эзэмшлийн

Архангельск бүс нутаг, Severodvinsk, ST. Ленин, D. 134, Q. 85

Зүүн нэгдэхийг - алдааны ердийн хэрэглээг: хүчингүй журам хүснэгтийг

Зүүн гадна үед хийсэн Үндсэн алдаа ширээ, хоёр нэгдэх:

  1. Зөв нь өгөгдлийн алдсан хүснэгт дарааллыг сонгосон байна.
  2. бүхий асуулга ашиглан хаана алдаа үед хүснэгтүүдийг холбох.

Эхний алдаа авч үзье. ямар ч асуудлын шийдвэр гарахаас өмнө тодорхой бид эцэст нь юу авахыг хүсч гэдгийг ойлгох хэрэгтэй. Дээрх Энэ жишээн дээр бид ард түмний бүр нэг нэгээр нь авч, харин бүрэн тоо 2, эзэн нь олж байсан юм дор объектын талаар мэдээлэл алга.

бид зарим газар нь хайлтанд хүснэгтүүдийг шилжсэн бол, нь эхлэх гэж «... Realty ... хүмүүсийг нэгдэхийг тийш» ямар нэг эд хөрөнгө, та хүмүүсийн талаар хэлж байх болно, бид алдсан байх байсан.

Харин зүүн холболтын айж байж, бүрэн гадаад үр дүн, тулгах биш, тохирсон шугам орсон байдаг нь шилжиж байна.

Бүх дараа дээжийн хэмжээ нь ихэвчлэн маш том байгаа бөгөөд нэмэлт мэдээллийг үнэн хэрэгтээ ямар ч хэрэггүй юм. Тэдний байгаа эд хөрөнгийн жагсаалт, тэдний эзэд нь бүхэлд нь үл хөдлөх хөрөнгийн жагсаалтад (хэрэв байгаа бол) бүх ард түмний: - Хамгийн гол нь олохын тулд та үр дүнг юу авахыг хүсч байгааг.

Зүүн нэгдэхийг - алдааны ердийн хэрэглээг: хаана нөхцөлийг тогтоох үед авагч нь зөв

Хоёр дахь алдаа нь бас өгөгдлийн алдагдлын холбоотой, үргэлж шууд илэрхий биш байх юм байна.

холболтууд нь бүх ард түмний болон тэдний одоо байгаа эд хөрөнгийн хувьд өгөгдлийг хүлээн авсан дамжуулан бид гарахдаа-ын хүсэлтийн буцаж явцгаая. Зүүн SQL жишээг нэгдэх дараах Санамж:

Peoples ЗҮҮН ЭЛСЭЭРЭЙ FROM Realty_peoples ТУХАЙ Peoples.id = Realty_peoples.id_peoples;

Бид хүсэлтийг тодруулах хүсэж байгаа биш, гаралт нь өгөгдөл, хийдэг гэж бодъё хаана хууль төрөл - "өмч". Бид зүгээр л нэмэх бол, зүүн SQL дараах нөхцөл жишээг нэгдэх ашиглах нь:

...

Хаана төрөл <> "өмч"

Бид дараах тэг утга Null харьцуулахад биш юм, учир нь ямар ч эд хөрөнгө хүмүүст талаарх мэдээллийг алдаж болно:

Query1

ID

L_name

F_name

Middle_name

Төрсөн өдөр

id_realty

төрөл

5

Gerasimovsky

гэдэгт найдаж байна

П.

14.03.1992

4

Нийтлэг хэсэг

6

Gerasimovsky

Олег

Albertovich

01/29/1985

4

Нийтлэг хэсэг

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

3

Нийт хамтарсан эзэмшлийн

8

Sukhanovskaya

Жулиа

Y.

01.10.2001

3

Нийт хамтарсан эзэмшлийн

Энэ шалтгаанаар гарсан нь алдаа сэргийлэхийн тулд, энэ нь холбогдуулан даруй сонгон шалгаруулах нөхцлийг тогтоох хамгийн сайн арга юм. Бид SQL жишээ нэгдэх зүүн дараах авч үзэх санал болгож байна.

SELECT Peoples. * Realty_peoples.id_realty, Realty_peoples.type

ард түмнүүдээс

ЗҮҮН Realty_peoples дээр ЭЛСЭЭРЭЙ (Peoples.id = Realty_peoples.id_peoples, төрөл <> "өмч")

үр дүн дараах байдлаар байж болно:

Query1

ID

L_name

F_name

Middle_name

Төрсөн өдөр

id_realty

төрөл

1

Ivanova

Daria

Б.

07/16/2000

2

Pugin

Владислав

Николаевич

29.01.1986

3

Evgenin

Александр

Federovich

04/30/1964

4

Annina

хайртай

П.

31.12.1989

5

Gerasimovsky

гэдэгт найдаж байна

П.

14.03.1992

4

Нийтлэг хэсэг

6

Gerasimovsky

Олег

Albertovich

01/29/1985

4

Нийтлэг хэсэг

7

Sukhanovskaya

Шүүгчдийн

A.

09/25/1976

3

Нийт хамтарсан эзэмшлийн

8

Sukhanovskaya

Жулиа

Y.

01.10.2001

3

Нийт хамтарсан эзэмшлийн

Тиймээс SQL жишээ нэгдэх зүүн энгийн дагаж, бид бүх хүмүүсийн жагсаалтыг цаашид хөдөлж хүлээн авч, өмчийн / хамтарсан эзэмшлийн эдгээр шинж чанарын нэг юм.

дүгнэлтийг хувьд би дахин нэг мэдээллийн санд аливаа мэдээлэл нь дээж хариуцлагатайгаар авч байх хэрэгтэй гэдгийг онцлон хэлмээр байна. Зүүн бидний өмнө нээгдсэн олон нарийн ширийн SQL энгийн жишээг нэгдэж, ямар нэг тайлбар - та нар ч гэсэн үндсэн асуулга бичиж эхлэхээсээ өмнө та анхааралтай бид эцэст нь юу авахыг хүсч байгааг ойлгох хэрэгтэй. Амжилт хүсье!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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