Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Menggabungkan Beberapa (3+) Tabel dalam Satu Pernyataan

Masalah:

Anda ingin menggabungkan data dari lebih dari dua tabel hanya menggunakan satu pernyataan SELECT.

Contoh:

Ada empat tabel di database kami:student , teacher , subject , dan learning .

student tabel berisi data dalam kolom berikut:id , first_name , dan last_name .

id nama_depan nama_belakang
1 Tom Miller
2 John Musim semi
3 Lisa Williams
4 Ellie Barker
5 James Moore

teacher tabel berisi data dalam kolom berikut:id , first_name , last_name , dan subject .

id nama_depan nama_belakang
1 Milan Smith
2 Charles Davis
3 Tandai Moore

subject tabel berisi data dalam kolom berikut:id dan name .

id nama
1 Bahasa Inggris
2 Seni
3 Musik

Akhirnya, learning tabel berisi data dalam kolom berikut:id , mark , subject_id , student_id , dan teacher_id .

id tanda subjek_id id_siswa id_guru
1 4 1 2 1
2 5 2 3 2
3 4 3 1 3
4 3 2 1 2
5 2 3 5 3
6 3 3 4 2

Kami ingin tahu siswa mana yang belajar bahasa Inggris, musik, dan seni, serta guru mana yang mengajar kelas-kelas ini. Pilih mata pelajaran kursus, nama belakang siswa yang mengambil kursus itu, dan nama belakang guru yang memberikan kursus itu.

Solusi:

Gunakan beberapa JOIN s dalam kueri Anda:

SELECT l.name AS subject_name,   
  t.last_name AS student_last_name, 
  st.last_name AS teacher_last_name 
FROM learning AS l  
JOIN subject s ON l.subject_id=s.id
JOIN student st ON l.student_id=st.id
JOIN teacher t ON l.teacher_id=t.id; 

Kueri ini mengembalikan catatan dengan nama mata pelajaran dan nama belakang siswa dan guru:

nama_subjek s_last_name t_last_name
Musik Moore Miller
Seni Davis Miller
Bahasa Inggris Smith Musim semi
Seni Davis Williams
Musik Davis Barker
Musik Moore Moore

Data ini berasal dari tiga tabel, jadi kita harus menggabungkan semua tabel tersebut untuk mendapatkan informasi yang kita cari.

Diskusi:

Jika Anda ingin menggabungkan data yang disimpan dalam beberapa tabel (lebih dari dua), Anda harus menggunakan JOIN operator beberapa kali. Pertama, Anda menggabungkan dua tabel seperti biasa (menggunakan JOIN , LEFT JOIN , RIGHT JOIN , atau FULL JOIN , sewajarnya). JOIN operasi membuat "tabel virtual" yang menyimpan data gabungan dari dua tabel. Dalam contoh kita, tabel hasil adalah kombinasi dari learning dan subject tabel.

Langkah selanjutnya adalah menggabungkan tabel hasil ini ke tabel ketiga (dalam contoh kita, student ). Ini seperti JOIN biasa :Anda bergabung dengan "tabel virtual" dan meja ketiga dengan kondisi yang sesuai. Kondisi ini umumnya harus mencakup satu atau lebih kolom dari tabel tambahan (student ) dan satu atau beberapa kolom dari "tabel virtual". Dalam contoh kami, kami mereferensikan student tabel dalam kondisi JOIN kedua.

Pada titik ini, kami memiliki tabel virtual baru dengan data dari tiga tabel. Langkah terakhir adalah menambahkan data dari tabel keempat (dalam contoh kita, teacher ). dan gabung menggunakan kunci dari tabel ini (dalam contoh kita, id dari teacher tabel dan teacher_id dari learning tabel).

Jika Anda harus bergabung dengan tabel lain, Anda dapat menggunakan JOIN yang lain operator dengan kondisi yang sesuai dalam klausa ON. Secara teori, Anda dapat bergabung dengan tabel sebanyak yang Anda inginkan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bekerja dengan Salesforce.com di Alpha Anywhere

  2. Menjelajahi Pengujian Unit Java dengan Kerangka Uji JUnit

  3. SQL ALTER TABLE untuk Pemula

  4. Pemeliharaan Tampilan Terindeks dalam Rencana Eksekusi

  5. T-SQL Selasa #106 :BUKAN pemicu