КомпјутериПрограмирање

Лево се приклучат (SQL) - на пример, детален опис, употреба на грешка

Во секој вистински релациона база на податоци, сите информации се дистрибуира на посебна табела. Многу од табелите се дадени во програмата на комуникација едни со други. Сепак, со помош на SQL queries тоа е сосема можно да се стави линк помеѓу податоците, не се вметнати во коло. Ова се прави со извршување на приклучат врска, кој ви овозможува да се изгради однос помеѓу било кој број на маси, и дури да се поврзете навидум различни информации.

Оваа статија ќе зборуваме конкретно за лево надворешниот се придружи. Пред да започнете со опис на овој тип на врска, додадете ги во некоја база на податоци маси.

Подготовка на потребните табели

На пример, во нашата база на податоци, има информации за луѓе и нивните недвижности. Краток преглед врз основа на три маси: Народи (луѓе), Имотот (недвижности), Realty_peoples (табела односи, од луѓе кои што имотот припаѓа). Ги преземе следните податоци се чуваат во масите на луѓе:

народи

id

L_name

F_name

Middle_name

роденден

1

Иванова

Дарија

Б.

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

жирито

А.

1976/09/25

8

Sukhanovskaya

Јулија

Y.

2001/01/10

Недвижен имот:

Имотот

id

адреса

1

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

2

Архангелск, ул. Severodvinskaya, d. 84, q. 9 BR. 5

3

регионот Архангелск, Северодвинск, ул. Ленин, d. 134, q. 85

4

регионот Архангелск, Novodvinsk, ул. Proletarshaya, d. 16, q. 137

5

Архангелск, ул. 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 LEFT JOIN table_B [{ЗА предикат} | {КОРИСТЕЊЕ spisok_ со tolbtsov}]

И шематски како што следува:

И овој израз е преведен како "Избери ги сите, без исклучок, линија на Табела А и Б на маса да ги прикажува само на појавување на редови на прирокот. Ако е пронајден на табелата во табелата на низа за парови А, потоа се пополни како резултат колони Нулев - вредности ".

Најчесто, кога левата конекција е означена и користење се користи само кога колоната имиња, кој се планира да се направи врска се исти.

Лево се приклучат - примери на употреба

Со поврзувањето на левата страна можеме да видиме, сите луѓе од листата ако има народи сопственост. Да го направите ова во левата приклучат SQL пример за пребарување:

Избери народи. *, Realty_peoples.id_realty, Realty_peoples.type

ОД народи LEFT JOIN Realty_peoples ЗА Peoples.id = Realty_peoples.id_peoples;

Со следните резултати:

Query1

id

L_name

F_name

Middle_name

роденден

id_realty

тип

1

Иванова

Дарија

Б.

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

жирито

А.

1976/09/25

1

сопственост

7

Sukhanovskaya

жирито

А.

1976/09/25

3

Вкупно заедничка сопственост

8

Sukhanovskaya

Јулија

Y.

2001/01/10

3

Вкупно заедничка сопственост

Како што гледаме, Иванова Дарја Пуџин Владислав и Anninoy Lyubovi Не запишаните права на недвижностите.

А што ќе се примени, со користење на внатрешниот приклучат Внатрешна приклучат? Како што знаете, тоа ги исклучува не-појавување на редови, па три од нашите конечниот примерок едноставно ќе се намали:

Query1

id

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

жирито

А.

1976/09/25

1

сопственост

7

Sukhanovskaya

жирито

А.

1976/09/25

3

Вкупно заедничка сопственост

8

Sukhanovskaya

Јулија

Y.

2001/01/10

3

Вкупно заедничка сопственост

Се чини дека втората верзија, исто така, ги исполнува условите на нашиот проблем. Сепак, ако почнеме да се закачите на друга, и друга маса, три лица од резултатот веќе неповратно нема. Поради тоа, во пракса, кога комбинирање на повеќе табели многу повеќе се користи левата и десната врска од Внатрешна приклучат.

Ќе продолжи да се погледне кон лево се приклучат SQL примери. Прикачи на маса со адреси на нашите куќи:

Избери народи. *, Realty_peoples.id_realty, Realty_peoples.type, Realty.address

ОД народи

LEFT JOIN Realty_peoples ЗА Peoples.id = Realty_peoples.id_peoples

LEFT JOIN Имотот НА Realty.id = Realty_peoples.id_realty

Сега ние се добие не само еден вид на законот, но, исто така, на адреса на недвижен имот:

Query1

id

L_name

F_name

Middle_name

роденден

id_realty

тип

адреса

1

Иванова

Дарија

Б.

2000/07/16

2

Пуџин

Владислав

Николаевич

1986/01/29

3

Evgenin

Александар

Federovich

1964/04/30

5

сопственост

Архангелск, ул. Terekhina, d. 89, q. 13

4

Анина

љубов

P.

1989/12/31

5

Gerasimovsky

се надевам

P.

1992/03/14

4

заедничките делови

регионот Архангелск, Novodvinsk, ул. Proletarshaya, d. 16, q. 137

6

Gerasimovsky

Олег

Albertovich

1985/01/29

4

заедничките делови

регионот Архангелск, Novodvinsk, ул. Proletarshaya, d. 16, q. 137

7

Sukhanovskaya

жирито

А.

1976/09/25

3

Вкупно заедничка сопственост

регионот Архангелск, Северодвинск, ул. Ленин, d. 134, q. 85

7

Sukhanovskaya

жирито

А.

1976/09/25

1

сопственост

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

8

Sukhanovskaya

Јулија

Y.

2001/01/10

3

Вкупно заедничка сопственост

регионот Архангелск, Северодвинск, ул. Ленин, d. 134, q. 85

Лево се приклучат - типичен употреба на грешка: неважечки маса постапка

Основни грешки направени на левата надворешниот приклучат маси, две:

  1. Правилно избрани од редот на маси за кој е на изгубени податоци.
  2. Каде грешки кога се користи пребарување со приклучат маси.

Размислете за прв грешка. Пред одлуката на било каков проблем треба јасно да се разбере дека она што сакате да го добиете на крајот. Во овој пример погоре, ние ја секој еден од луѓето, туку целосно ја загуби информации за објектот под број 2, чиј сопственик не е пронајден.

Ако ние се пресели на маси во барањето на некои места, а ќе започне со "... Од Имотот лево приклучат народи ...» било еден имот, ние не би ја изгубиле, нема да кажам за луѓето.

Но, не се плашат од левата конекција, се префрлат на целосна надворешна, која е вклучена во резултатите и за појавување на, а не на редовите што се совпаѓаат.

Впрочем, обемот на примерокот е често многу голема, и дополнителни податоци е всушност бескорисни. Главната работа - да дознаам што сакате да се добие резултат: на сите луѓе со листа на располагање на нивниот имот или целата листа сопственост со нивните сопственици (доколку постојат).

Лево се приклучат - типичен употреба на грешка: Барање е точно, при утврдувањето на условите во случај кога

Втората грешка е исто така поврзан со губење на податоци, како и секогаш не се веднаш видливи.

Да се вратиме на прашањето кога тргнавме преку врски добиените податоци за сите луѓе и нивните постоечки имот. Се сеќавам на следново со левата се приклучат SQL пример:

ОД народи LEFT JOIN Realty_peoples ЗА Peoples.id = Realty_peoples.id_peoples;

Да претпоставиме дека сакаме да се разјаснат на барање и не емитува на податоци, каде што типот на законот - "сопственост". Ако ние едноставно додадете, ја користи левата приклучат SQL, на пример на следниве услови:

...

Каде тип <> "сопственост"

ние ќе ги изгубите податоците од луѓе кои немаат имот, бидејќи Нулев нултата вредност не е споредба на следниов начин:

Query1

id

L_name

F_name

Middle_name

роденден

id_realty

тип

5

Gerasimovsky

се надевам

P.

1992/03/14

4

заедничките делови

6

Gerasimovsky

Олег

Albertovich

1985/01/29

4

заедничките делови

7

Sukhanovskaya

жирито

А.

1976/09/25

3

Вкупно заедничка сопственост

8

Sukhanovskaya

Јулија

Y.

2001/01/10

3

Вкупно заедничка сопственост

За да се спречи грешки од случуваат поради оваа причина, тоа е најдобро да се постави услов за избор веднаш по врска. Ние Ви препорачуваме да се разгледа на следниве со левото приклучат SQL пример.

Избери народи. *, Realty_peoples.id_realty, Realty_peoples.type

ОД народи

LEFT JOIN Realty_peoples ON (Peoples.id = Realty_peoples.id_peoples и видот <> "сопственост")

Резултатот ќе биде како што следува:

Query1

id

L_name

F_name

Middle_name

роденден

id_realty

тип

1

Иванова

Дарија

Б.

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

жирито

А.

1976/09/25

3

Вкупно заедничка сопственост

8

Sukhanovskaya

Јулија

Y.

2001/01/10

3

Вкупно заедничка сопственост

Така, следејќи ги едноставните на лево се приклучат SQL пример, доби листа на сите луѓе, се движи понатаму, едно од овие својства во капиталот / заедничка сопственост.

Како заклучок би сакал уште еднаш дека примерок од било информации од базата на податоци треба да се преземат одговорно да се нагласи. Многу нијанси отвори пред нас со левата се приклучат SQL едноставен пример, на објаснување на кој еден - пред да почнат да пишуваат дури и основните пребарување, ќе мора внимателно да се разбере она што сакаме да се добие во на крајот. Со среќа!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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