កុំព្យូទ័រការសរសេរកម្មវិធី

ខាងឆ្វេងចូលរួម (SQL មួយ) - ឧទាហរណ៍មួយដែលជាការរៀបរាប់លម្អិតនៃការប្រើប្រាស់កំហុស

នៅក្នុងមូលដ្ឋានទិន្នន័យទំនាក់ទំនងពិតប្រាកដណាមួយដែលទាំងអស់ត្រូវបានចែកចាយពលើតុដាច់ដោយឡែកមួយ។ មនុស្សជាច្រើននៃតារាងដែលត្រូវបានកំណត់ចេញនៅក្នុងគម្រោងការទំនាក់ទំនងជាមួយគ្នា។ ទោះជាយ៉ាងណា, ជាមួយនឹងជំនួយរបស់ សំណួរ SQL វាគឺអាចធ្វើបានណាស់ក្នុងការដាក់តំណភ្ជាប់រវាងទិន្នន័យដែលបានបង្កប់នៅក្នុងសៀគ្វីមិនជាមួយ។ នេះត្រូវបានធ្វើឡើងដោយសម្តែងការតភ្ជាប់ចូលរួមដែលអនុញ្ញាតឱ្យអ្នកដើម្បីកសាងទំនាក់ទំនងរវាងចំនួននៃតារាងណាមួយ, និងសូម្បីតែការតភ្ជាប់គម្លាតហាក់ដូចជាព។

អត្ថបទនេះនឹងនិយាយជាពិសេសអំពីខាងក្រៅខាងឆ្វេងចូលរួម។ មុននឹងរៀបរាប់ពីប្រភេទនៃការតភ្ជាប់នេះបន្ថែមក្នុងតារាងមូលដ្ឋានទិន្នន័យមួយចំនួន។

ការរៀបចំតារាងចាំបាច់

ឧទាហរណ៍នៅក្នុងមូលដ្ឋានទិន្នន័យរបស់យើងគឺមានអំពីប្រជាជននិងអចលនទ្រព្យរបស់ពួកគេ។ សង្ខេបដោយផ្អែកលើតារាងទាំងបី: ប្រជាជន (មនុស្ស), រៀលធី (អចលនទ្រព្យ), Realty_peoples (ទំនាក់ទំនងតារាងមនុស្សដែលពីអ្វីដែលទ្រព្យសម្បត្ដិជារបស់) ។ សន្មត់ទិន្នន័យខាងក្រោមនេះត្រូវបានរក្សាទុកក្នុងតារាងរបស់ប្រជាជន:

ប្រជាជន

លេខសម្គាល់

L_name

F_name

Middle_name

ថ្ងៃខួបកំណើត

1

Ivanova

Daria

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

លោក Alexander

Federovich

04/30/1964

4

Annina

ស្រឡាញ់

លោក P.

31.12.1989

5

Gerasimovsky

សង្ឃឹម

លោក P.

14.03.1992

6

Gerasimovsky

លោក Oleg

Albertovich

01/29/1985

7

Sukhanovskaya

គណៈវិនិច្ឆ័យ

09/25/1976

8

Sukhanovskaya

លោកស្រី Julia

Y.

01.10.2001

អចលនទ្រព្យ:

រៀលធី

លេខសម្គាល់

អាសយដ្ឋាន

1

Arkhangelsk, ul ។ Voronin, 7 ឃ។ kv.6

2

Arkhangelsk, ul ។ Severodvinskaya, 84 ឃ។ , q ។ 9 BR ។ 5

3

តំបន់ Arkhangelsk, Severodvinsk នៅ, ទី។ លេនីន, 134 ឃ។ , q ។ 85

4

តំបន់ Arkhangelsk, Novodvinsk, ul ។ Proletarshaya, 16 ឃ។ , q ។ 137

5

Arkhangelsk, 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 [{ស្តីពីការព្យាករណ៍} | {ប្រើ spisok_ ជាមួយ tolbtsov}]

និងគំនូរបំព្រួញដូចខាងក្រោម:

និងការបញ្ចេញមតិនេះត្រូវបានបកប្រែជា "ជ្រើសទាំងអស់ដោយគ្មានករណីលើកលែង, បន្ទាត់នៃតារាង A និង B ដែលតារាងដើម្បីបង្ហាញតែជួរដេកនៃការព្យាករណ៍នេះផ្គូផ្គង។ ប្រសិនបើតារាងត្រូវបានរកឃើញក្នុងតារាងខ្សែអក្សរសម្រាប់គូមួយ, បន្ទាប់មកបំពេញជួរឈរលទ្ធផលគ្មាន - តម្លៃ "។

ភាគច្រើនជាញឹកញាប់នៅពេលដែលការតភ្ជាប់បានចាកចេញត្រូវបានបង្ហាញលើដោយប្រើនឹងត្រូវបានប្រើនៅពេលដែលឈ្មោះជួរឈរដែលត្រូវបានគ្រោងទុកដើម្បីធ្វើឱ្យការតភ្ជាប់នេះគឺដូចគ្នា។

ចូលរួមឆ្វេង - ឧទាហរណ៍នៃការប្រើប្រាស់

ជាមួយនឹងការតភ្ជាប់នៃខាងឆ្វេងដែលយើងអាចមើលឃើញ, មនុស្សទាំងអស់ពីបញ្ជីប្រសិនបើមានទ្រព្យសម្បត្ដិជន។ ដើម្បីធ្វើដូចនេះនៅខាងឆ្វេងចូលរួមឧទាហរណ៍សំណួរ SQL:

ជន SELECT ។ *, Realty_peoples.id_realty, Realty_peoples.type

ពីមនុស្សដែលនៅលើឆ្វេងចូលរួម Realty_peoples = Realty_peoples.id_peoples Peoples.id!

ជាមួយនឹងលទ្ធផលដូចខាងក្រោម:

Query1

លេខសម្គាល់

L_name

F_name

Middle_name

ថ្ងៃខួបកំណើត

id_realty

ប្រភេទ

1

Ivanova

Daria

07/16/2000

2

Pugin

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

លោក Alexander

Federovich

04/30/1964

5

អចលនទ្រព្យ

4

Annina

ស្រឡាញ់

លោក P.

31.12.1989

5

Gerasimovsky

សង្ឃឹម

លោក P.

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

លោកស្រី Julia

Y.

01.10.2001

3

អឌ្ឍសិទ្ធិសរុប

ដូចដែលយើងបានឃើញ Ivanova Darya Pugin Vladislav បាននិង Anninoy Lyubovi ដែលបានចុះឈ្មោះគ្មានសិទ្ធិអចលនទ្រព្យ។

និងអ្វីដែលនឹងយើងបានទទួលដោយប្រើខាងក្នុងមួយបានចូលរួមខាងក្នុងចូលរួម? ដូចដែលអ្នកបានដឹងហើយថាវាមិនរាប់បញ្ចូលជួរដេកដែលមិនផ្គូផ្គងដូច្នេះបីចេញពីគំរូចុងក្រោយរបស់យើងនឹងគ្រាន់តែត្រូវបានធ្លាក់ចុះ:

Query1

លេខសម្គាល់

L_name

F_name

Middle_name

ថ្ងៃខួបកំណើត

id_realty

ប្រភេទ

3

Evgenin

លោក Alexander

Federovich

04/30/1964

5

អចលនទ្រព្យ

5

Gerasimovsky

សង្ឃឹម

លោក P.

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

លោកស្រី Julia

Y.

01.10.2001

3

អឌ្ឍសិទ្ធិសរុប

វានឹងហាក់បីដូចថាកំណែទីពីរផងដែរបានជួបលក្ខខណ្ឌនៃបញ្ហារបស់យើង។ ទោះជាយ៉ាងណា, ប្រសិនបើយើងចាប់ផ្តើមដើម្បីភ្ជាប់នៅលើផ្សេងទៀត, និងតុមួយផ្សេងទៀត, មនុស្សបីនាក់រួចទៅហើយពីលទ្ធផលបានបាត់បង់ irretrievably ។ ដូច្នេះនៅក្នុងការអនុវត្តនៅពេលដែលរួមបញ្ចូលគ្នារវាងតុច្រើនត្រូវបានគេប្រើជាញឹកញាប់ជាច្រើនទៀតឆ្វេងនិងស្តាំការតភ្ជាប់ជាងខាងក្នុងចូលរួម។

នឹងបន្តសម្លឹងមើលទៅខាងឆ្វេងចូលរួមឧទាហរណ៍ SQL ។ ភ្ជាប់តារាងជាមួយជាមួយអាសយដ្ឋាននៃផ្ទះរបស់យើង:

ជន SELECT ។ *, 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

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

លោក Alexander

Federovich

04/30/1964

5

អចលនទ្រព្យ

Arkhangelsk, PL ។ Terekhina, 89 ឃ។ , q ។ 13

4

Annina

ស្រឡាញ់

លោក P.

31.12.1989

5

Gerasimovsky

សង្ឃឹម

លោក P.

14.03.1992

4

ចំណែករួម

តំបន់ Arkhangelsk, Novodvinsk, ul ។ Proletarshaya, 16 ឃ។ , q ។ 137

6

Gerasimovsky

លោក Oleg

Albertovich

01/29/1985

4

ចំណែករួម

តំបន់ Arkhangelsk, Novodvinsk, ul ។ Proletarshaya, 16 ឃ។ , q ។ 137

7

Sukhanovskaya

គណៈវិនិច្ឆ័យ

09/25/1976

3

អឌ្ឍសិទ្ធិសរុប

តំបន់ Arkhangelsk, Severodvinsk នៅ, ទី។ លេនីន, 134 ឃ។ , q ។ 85

7

Sukhanovskaya

គណៈវិនិច្ឆ័យ

09/25/1976

1

អចលនទ្រព្យ

Arkhangelsk, ul ។ Voronin, 7 ឃ។ kv.6

8

Sukhanovskaya

លោកស្រី Julia

Y.

01.10.2001

3

អឌ្ឍសិទ្ធិសរុប

តំបន់ Arkhangelsk, Severodvinsk នៅ, ទី។ លេនីន, 134 ឃ។ , q ។ 85

ចូលរួមឆ្វេង - ការប្រើប្រាស់ធម្មតានៃកំហុស: តារាងនីតិវិធីមិនត្រឹមត្រូវ

កំហុសមូលដ្ឋានបានធ្វើឡើងនៅខាងក្រៅខាងឆ្វេងចូលរួមតុពីរ:

  1. ត្រឹមត្រូវបានជ្រើសរើសជាគោលបំណងនៃតុដែលទិន្នន័យត្រូវបានបាត់បង់។
  2. ដែលជាកន្លែងដែលមានកំហុសពេលប្រើសំណួរជាមួយនឹងការចូលរួមតុ។

សូមពិចារណាកំហុសជាលើកដំបូង។ មុនពេលសម្រេចចិត្តនៃបញ្ហាណាមួយដែលគួរតែត្រូវបានយល់យ៉ាងច្បាស់ថាអ្វីដែលយើងចង់ទទួលបាននៅទីបញ្ចប់។ នៅក្នុងឧទាហរណ៍នេះខាងលើនេះយើងបានយកម្ដងមួយមនុស្សនោះទេប៉ុន្តែបានបាត់បង់ទាំងស្រុងអំពីវត្ថុដែលនៅក្រោមចំនួន 2 ដែលមានម្ចាស់មិនត្រូវបានរកឃើញ។

ប្រសិនបើយើងបានផ្លាស់ប្តូរតារាងក្នុងសំណួរនៅក្នុងទីកន្លែងមួយចំនួន, ហើយនឹងចាប់ផ្តើមជាមួយនឹង« ... ពីរៀលធីបានចាកចេញពីប្រជា ... »ចូលរួមជាអចលនទ្រព្យណាមួយនោះយើងនឹងមិនបានបាត់បង់, អ្នកនឹងមិនត្រូវបានប្រាប់អំពីមនុស្ស។

ប៉ុន្តែមិនត្រូវភ័យខ្លាចនៃការតភ្ជាប់ខាងឆ្វេង, ប្ដូរទៅជាការពេញលេញពីខាងក្រៅដែលត្រូវបានរួមបញ្ចូលនៅក្នុងលទ្ធផលនិងការផ្គូផ្គងនិងមិនបន្ទាត់ដែលផ្គូផ្គង។

បន្ទាប់ពីទាំងអស់, បរិមាណនៃគំរូនេះ ជាញឹកញាប់គឺមានទំហំធំខ្លាំងណាស់, និងទិន្នន័យបន្ថែមទៀតគឺពិតជាគ្មានប្រយោជន៍។ អ្វីដែលមេ - ដើម្បីរកអ្វីដែលអ្នកចង់បានដើម្បីទទួលបានលទ្ធផលមួយ: ប្រជាជនទាំងអស់ជាមួយនឹងបញ្ជីមួយនៃទ្រព្យសម្បត្ដិដែលអាចប្រើបានរបស់ពួកគេឬបញ្ជីអចលនទ្រព្យទាំងមូលជាមួយនឹងម្ចាស់របស់ពួកគេ (ប្រសិនបើមាន) ។

ចូលរួមឆ្វេង - ការប្រើប្រាស់ធម្មតានៃកំហុស: សំណើត្រឹមត្រូវពេលដែលការកំណត់លក្ខខណ្ឌក្នុងការដែលជាកន្លែងដែល

កំហុសទីពីរផងដែរត្រូវបានភ្ជាប់ជាមួយការបាត់បង់ទិន្នន័យនិងមិនតែងតែច្បាស់ភ្លាម។

តោះត្រឡប់ទៅសំណួរនៅពេលដែលយើងបានចាកចេញពីការតាមរយៈការតភ្ជាប់ដែលបានទទួលទិន្នន័យសម្រាប់មនុស្សទាំងអស់ដែលមានស្រាប់របស់ខ្លួននិងទ្រព្យសម្បត្តិ។ ចូរនឹកចាំដូចខាងក្រោមជាឧទាហរណ៍ជាមួយឆ្វេងចូលរួម SQL:

ពីមនុស្សដែលនៅលើឆ្វេងចូលរួម Realty_peoples = Realty_peoples.id_peoples Peoples.id!

ឧបមាថាយើងចង់បញ្ជាក់ពីការស្នើរសុំនេះនិងមិនទិន្នផលទិន្នន័យ, ដែលជាកន្លែងដែលប្រភេទនៃច្បាប់ - "លក្ខណៈសម្បត្តិ" ។ ប្រសិនបើយើងគ្រាន់តែបន្ថែម, ប្រើបានចាកចេញចូលរួម SQL មួយ, ឧទាហរណ៍នៃលក្ខខណ្ឌដូចខាងក្រោមនេះ:

...

ប្រភេទដែលជាកន្លែងដែល <> "លក្ខណៈសម្បត្តិ"

យើងនឹងបាត់បង់ទិន្នន័យលើមនុស្សដែលមានទ្រព្យសម្បត្តិនោះទេដោយសារតែការគ្មានទទេមិនត្រូវមានតម្លៃបើប្រៀបធៀបដូចខាងក្រោម:

Query1

លេខសម្គាល់

L_name

F_name

Middle_name

ថ្ងៃខួបកំណើត

id_realty

ប្រភេទ

5

Gerasimovsky

សង្ឃឹម

លោក P.

14.03.1992

4

ចំណែករួម

6

Gerasimovsky

លោក Oleg

Albertovich

01/29/1985

4

ចំណែករួម

7

Sukhanovskaya

គណៈវិនិច្ឆ័យ

09/25/1976

3

អឌ្ឍសិទ្ធិសរុប

8

Sukhanovskaya

លោកស្រី Julia

Y.

01.10.2001

3

អឌ្ឍសិទ្ធិសរុប

ដើម្បីបងា្កកំហុសកើតឡើងចំពោះហេតុផលនេះ, វាជាការល្អបំផុតដើម្បីកំណត់លក្ខខណ្ឌជ្រើសរើសភ្លាមលើការតភ្ជាប់។ យើងបានស្នើឱ្យពិចារណាដូចខាងក្រោមជាមួយនឹងខាងឆ្វេងចូលរួមឧទាហរណ៍ SQL ។

ជន SELECT ។ *, 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

Vladislav

Nikolaevich

29.01.1986

3

Evgenin

លោក Alexander

Federovich

04/30/1964

4

Annina

ស្រឡាញ់

លោក P.

31.12.1989

5

Gerasimovsky

សង្ឃឹម

លោក P.

14.03.1992

4

ចំណែករួម

6

Gerasimovsky

លោក Oleg

Albertovich

01/29/1985

4

ចំណែករួម

7

Sukhanovskaya

គណៈវិនិច្ឆ័យ

09/25/1976

3

អឌ្ឍសិទ្ធិសរុប

8

Sukhanovskaya

លោកស្រី Julia

Y.

01.10.2001

3

អឌ្ឍសិទ្ធិសរុប

ដូច្នេះដោយសាមញ្ញដូចខាងក្រោមទៅខាងឆ្វេងចូលរួមឧទាហរណ៍ SQL មួយ, យើងបានទទួលបញ្ជីនៃមនុស្សទាំងអស់ដែលជាការផ្លាស់ប្តូរបន្ថែមទៀត, មួយនៃលក្ខណៈសម្បត្តិទាំងនេះនៅក្នុងមួយភាគហ៊ុន / ភាពជាម្ចាស់រួមគ្នា។

ជាការសន្និដ្ឋានមួយដែលខ្ញុំចង់បញ្ជាក់ជាថ្មីម្តងទៀតថាជាគំរូមួយនៃពណាមួយពីមូលដ្ឋានទិន្នន័យមួយដែលត្រូវតែទទួលខុសត្រូវ។ ការ nuances ជាច្រើនបានបើកនៅចំពោះមុខយើងជាមួយឆ្វេងចូលរួមឧទាហរណ៍ធម្មតា SQL មួយ, ការពន្យល់ដែលមួយ - មុនពេលអ្នកចាប់ផ្តើមសរសេរសូម្បីតែសំណួរមូលដ្ឋាន, អ្នកត្រូវតែដោយប្រុងប្រយ័ត្នដើម្បីយល់ពីអ្វីដែលយើងចង់ទទួលបាននៅទីបញ្ចប់។ សូមសំណាងល្អ!

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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