Apakah perbezaan antara bergabung dan kesatuan dalam SQL?
Apakah perbezaan antara bergabung dan kesatuan dalam SQL?

Video: Apakah perbezaan antara bergabung dan kesatuan dalam SQL?

Video: Apakah perbezaan antara bergabung dan kesatuan dalam SQL?
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, November
Anonim

Dalam kesatuan , lajur tidak digabungkan untuk mencipta hasil, baris digabungkan. Kedua-duanya bergabung dan kesatuan boleh digunakan untuk menggabungkan data daripada satu atau lebih jadual ke dalam satu keputusan. Mereka berdua pergi tentang ini adalah berbeza cara. Manakala a sertai digunakan untuk menggabungkan lajur daripada berbeza meja, yang kesatuan digunakan untuk menggabungkan baris.

Begitu juga, apakah perbezaan antara kesatuan dan gabungan penuh?

Sertai digunakan untuk menggabungkan lajur daripada berbeza meja, sedangkan kesatuan digunakan untuk menggabungkan baris. Harap ini membantu. Jika anda bayangkan ini secara visual: Dengan penuh luar sertai anda menambah lajur dan meluaskan baris hasil anda (tuple) dengan lajur (atribut) daripada baris (tuple) jadual sumber.

Selain itu, apakah yang boleh digunakan dan bukannya kesatuan dalam SQL? Terdapat beberapa alternatif kepada pengendali SQL kesatuan:

  • Gunakan UNION ALL.
  • Laksanakan setiap SQL secara berasingan dan gabungkan serta susun set hasil dalam program anda!
  • Sertai meja.
  • Dalam versi, 10g dan seterusnya, terokai klausa MODEL.
  • Gunakan subkueri skalar.

Begitu juga, orang bertanya, apa yang lebih cepat bergabung atau kesatuan?

Satu SELECT akan menggunakan tidak lebih daripada satu indeks setiap jadual. A KESATUAN akan menggunakan tidak lebih daripada satu indeks setiap SELECT dalam kesatuan . Oleh itu, yang terakhir akan menggunakan indeks dengan lebih baik, seperti yang dilihat oleh "Menggunakan indeks" di banyak tempat dalam EXPLAINnya. Jadi dari apa yang anda katakan KESATUAN dengan sifat mereka sebenarnya lebih pantas daripada JOIN.

Adakah gabungan luar penuh mengalih keluar pendua?

Bila menyertai dua jadual menggunakan " sambungan luar penuh ", hasilnya akan ada pendua lajur. Contohnya jika padanan lajur ialah "tarikh", maka set data hasil akan mempunyai lajur "tarikh" dan "tarikh_1". Di kiri gabungan luar atau batin sertai , kita hanya boleh menggunakan "pilih lajur" untuk keluarkan yang diduakan lajur.

Disyorkan: