SQLдеги үч таблицага кошулуунун жөнөкөй жолдору (сүрөттөр менен)

Мазмуну:

SQLдеги үч таблицага кошулуунун жөнөкөй жолдору (сүрөттөр менен)
SQLдеги үч таблицага кошулуунун жөнөкөй жолдору (сүрөттөр менен)

Video: SQLдеги үч таблицага кошулуунун жөнөкөй жолдору (сүрөттөр менен)

Video: SQLдеги үч таблицага кошулуунун жөнөкөй жолдору (сүрөттөр менен)
Video: Custom Keyboard Shortcuts on Windows with AutoHotKey 2024, Апрель
Anonim

SQLде таблицалар менен иштөөдө үч же андан көп таблицаларды сураш керек болгон учурлар болушу мүмкүн. Убактылуу кошулган таблицаны түзүү үчүн эки таблицага кошулуу үчүн алгач кошулуу арызын колдонуу менен үч таблицага кошула аласыз. Андан кийин үчүнчү таблицага кошулуу үчүн экинчи кошулуу арызын колдонуңуз.

Кадамдар

11227971 1
11227971 1

Кадам 1. Түрүн тандаңыз SELECT артынан сиз сурагыңыз келген мамычанын аттары

Сиз сурагыңыз келген үчөөнүн ар биринин тилкесинин атын териңиз. Ар бир мамычанын атын үтүр менен ажыратыңыз. Бул мисалда биз "Студенттер", "Мектептер", "Деталдар" деп аталган үч таблицадан сурамакчыбыз.

Мисалы SELECT student_id, student_name, school_id, school, grade

11227971 2
11227971 2

Кадам 2. Type FROM, андан кийин биринчи стол аты

Бул өзүнчө сапта же биринчи билдирүүдөн кийин дароо кетиши мүмкүн. Биздин мисалда биз FROM студенттерин жазмакпыз.

11227971 3
11227971 3

Кадам 3. Кошулууну билдирүүнү экинчи столдун атына жазыңыз

Эки таблицага кошулуу үчүн кошулуунун төрт түрү бар. Алар төмөнкүдөй:

  • Ан үчүн JOIN териңиз Ички кошулуу. Бул эки таблицада дал келген мааниге ээ болгон жазууларды кайтарат. Мисалы Студенттерден КОШУЛУҢУЗ Чоо -жайын.
  • Ан үчүн эмне кылуу керек LEFT JOIN Сырткы Сол Биригүү. Бул сол жадыбалдагы бардык жазууларды жана оң жадыбалдан дал келген маанилерди кайтарат. Мисалы Студенттерден КОШУЛГУЛА Чоо -жайын билүү.
  • A кылуу үчүн RIGHT JOIN териңиз Тышкы кошулуу. Бул оң жадыбалдагы бардык жазууларды жана сол жадыбалдагы дал келген маанилерди кайтарат. Мисалы, студенттерден ТУУРА КОШУЛУҢУЗ Маалымат.
  • A кылуу үчүн FULL JOIN териңиз Толук тышкы кошулуу. Бул эки таблицадан бардык жазууларды кайтарат. Мисалы студенттерден FULL JOIN Толук маалымат.
11227971 4
11227971 4

Кадам 4. Таблицалар менен мамычалар үчүн "ON" билдирүүсүн териңиз

Бул билдирүүнүн синтаксиси "ON table_1.primary_key = table_2.foreign_key". "Table_1" - сиз кошулган биринчи таблицанын аты, ал эми "Primary_key" - биринчи таблицанын негизги мамычасынын аты. "Table_2" - экинчи таблицанын аты, ал эми "Foreign_key" - бул биринчи таблицанын негизги тилкесине дал келген экинчи таблицанын аталышы.

  • Биздин мисалда, "Студенттер" - бул биринчи таблица жана "student_id" - Студенттер столунун негизги ачкычы, ал дагы Деталдар таблицасында. Ошентип, биз ON студенттери.student_id = Details.student_id деп термекпиз. Бул Студенттер таблицасына Негизги ачкыч катары "student_id" колдонуп, Толук маалымат столуна кошулат.
  • Же болбосо, student_name мамычасы "Деталдар" таблицасында болсо, ON Student.student_id = Details.student_name терүү менен student_id тилкесин student_id талаасынын ордуна көрсөтө аласыз.
11227971 5
11227971 5

Кадам 5. Үчүнчү таблицанын атын кошкондон кийин кошулууну билдириңиз

Бул өзүнчө сапта же биринчи эки таблицага кошулган "ON" билдирүүсүнөн кийин болушу мүмкүн. Сиз төрт кошулуу билдирүүсүнүн бирин колдоно аласыз.

Биздин мисалда, биз JOIN Schools деп жазмакпыз

11227971 6
11227971 6

Кадам 6. Кайсы таблицалар менен мамычалар кошуларын көрсөтүүчү "ON" билдирүүсүн териңиз

Үчүнчү кошулуунун синтаксиси "ON table_3.primary_key = table_1.foreign_key". "Table_1". "Table_3 - үчүнчү таблицанын аталышы. Бул үчүнчү таблицанын негизги тилкесинин аталышын жана биринчи таблицанын чет өлкөлүк ачкычын колдонуу менен акыркы биригүүгө таблицанын үчүн кошот. Биздин мисалда муну ON Schools.student_id = Студенттер теребиз.student_id. Бардык кошулуу билдирүүсү төмөнкүдөй болушу керек:

    Student_id, student_name, school_id, school, grade ТАНДОО Студенттерден ТОЛУК КОШУЛУҢУЗ Толук маалымат ON Student.student_id = Details.student_id JOIN Schools on Schools.student_id = Студенттер.студент_ид

Сунушталууда: