Mendapatkan Data Dari Berbilang Meja Dengan SQL Inner Joins

Inner menyertai maklumat kembali yang muncul dalam dua atau lebih pangkalan data

Menggabungkan dalaman adalah gabungan yang paling sering digunakan dalam SQL. Mereka hanya mengembalikan maklumat yang terdapat dalam dua atau lebih jadual pangkalan data. Syarat menyertai menentukan rekod yang dipasangkan bersama dan dinyatakan dalam klausa WHERE. Sebagai contoh, jika anda memerlukan senarai pemadanan pemandu / kenderaan di mana kedua-dua kenderaan dan pemandu terletak di bandar yang sama, pertanyaan SQL berikut menyelesaikan tugas ini:

PILIH nama akhir, nama pertama, tag DARI pemandu, kenderaan WHERE drivers.location = vehicles.location

Berikut adalah hasilnya:

tag nama nama akhir nama
----------- ------------ ----
Baker Roland H122JM
Smythe Michael D824HA
Smythe Michael P091YF
Jacobs Abraham J291QR
Jacobs Abraham L990MT

Perhatikan bahawa keputusan adalah tepat apa yang dicari. Adalah mungkin untuk menambah baik pertanyaan dengan menentukan kriteria tambahan dalam klausa WHERE. Anggapkan pertanyaan asal memadankan pemandu ke kenderaan yang mereka tidak dibenarkan memandu (pemandu trak ke kereta dan sebaliknya). Anda boleh menggunakan pertanyaan berikut untuk menyelesaikan masalah ini:

Nama akhir SELECT, firstname, tag, vehicles.class DARI pemandu, kenderaan WHERE drivers.location = vehicles.location AND drivers.class = vehicles.class

Contoh ini menentukan jadual sumber untuk atribut kelas dalam klausa SELECT kerana kelas itu samar-jelas di kedua-dua jadual. Kod ini biasanya akan menentukan lajur jadual mana yang harus disertakan dalam hasil pertanyaan. Dalam kes ini, ia tidak membuat perbezaan, kerana lajur adalah sama dan mereka disertai menggunakan equijoin. Walau bagaimanapun, jika lajur mengandungi data yang berbeza, perbezaan ini akan menjadi kritikal. Berikut adalah hasil pertanyaan ini:

nama tag nama nama akhir nama
---------------------- ---- ------
Baker Roland H122JM Kereta
Smythe Michael D824HA Truck
Jacobs Abraham J291QR Kereta

Barisan yang hilang dipasangkan Michael Smythe ke kereta dan Abraham Jacobs ke trak, kenderaan mereka tidak dibenarkan memandu.

Anda juga boleh menggunakan gabungan batin untuk menggabungkan data dari tiga atau lebih jadual .