SQL-da qo'shilish va birlashma o'rtasidagi farq nima?
SQL-da qo'shilish va birlashma o'rtasidagi farq nima?

Video: SQL-da qo'shilish va birlashma o'rtasidagi farq nima?

Video: SQL-da qo'shilish va birlashma o'rtasidagi farq nima?
Video: =сцепить() yoki =concat() funksiyalaridan foydalanib uchta katakdagi ism familiyani birlashtirish 2024, Aprel
Anonim

Birlikda , natijalar yaratish uchun ustunlar birlashtirilmaydi, qatorlar birlashtiriladi. Ikkalasi ham birlashmalar va uyushmalar bir yoki bir nechta jadval ma'lumotlarini bitta natijalarga birlashtirish uchun ishlatilishi mumkin. Ularning ikkalasi ham bu haqda borishadi boshqacha yo'llari. Holbuki a qo'shilish dan ustunlarni birlashtirish uchun ishlatiladi boshqacha jadvallar, ittifoq qatorlarni birlashtirish uchun ishlatiladi.

Xuddi shunday, ittifoq va to'liq qo'shilish o'rtasidagi farq nima?

Qo'shilish dan ustunlarni birlashtirish uchun ishlatiladi boshqacha jadvallar, holbuki ittifoq qatorlarni birlashtirish uchun ishlatiladi. Umid qilamanki, bu yordam beradi. Agar buni vizual tarzda tasavvur qilsangiz: To'liq bilan tashqi qo'shilish siz ustunlar qo'shasiz va natija qatorlarini (kortejlarini) manba jadvallari satrlari (tuples) dan ustunlar (atributlar) bilan kengaytirasiz.

Bundan tashqari, SQL da birlashma o'rniga nima ishlatilishi mumkin? Union SQL operatoriga bir nechta alternativalar mavjud:

  • UNION ALL dan foydalaning.
  • Har bir SQL-ni alohida-alohida bajaring va dasturingizdagi natijalar to'plamini birlashtiring va tartiblang!
  • Jadvallarga qo'shiling.
  • 10 g va undan yuqori versiyalarda MODEL bandini o'rganing.
  • Skalar pastki so'rovdan foydalaning.

Xuddi shunday, odamlar tezroq qo'shilish yoki birlashish nima deb so'rashadi.

Bitta SELECT har bir jadval uchun bittadan ortiq indeksdan foydalanmaydi. A UNION ichida SELECT uchun bittadan ortiq indeks ishlatmaydi ittifoq . Demak, ikkinchisi indekslardan yaxshiroq foydalanadi, buni EXPLAIN-ning ko'p joylarida "Using indeksi" ko'rgan. Demak, siz aytayotgan narsadan UNIONs ularning tabiatiga ko'ra, albatta Tezroq JOINlardan ko'ra.

To'liq tashqi birikma dublikatlarni olib tashlaydimi?

Qachon qo'shilish ikkita jadval yordamida " to'liq tashqi birikmalar ", natija bo'ladi dublikat ustunlar. Misol uchun, agar ustun mosligi "sana" bo'lsa, natija ma'lumotlar to'plamida "sana" va "date_1" ustunlari bo'ladi. Chapda tashqi qo'shilish yoki ichki qo'shilish , biz shunchaki "ustunlarni tanlash" dan foydalanishimiz mumkin olib tashlash the takrorlangan ustunlar.

Tavsiya: