Menyertai Berbilang Jadual dengan SQL Inner Join
Apabila bekerja dengan berbilang jadual dalam pangkalan data, selalunya perlu untuk menyertainya untuk mendapatkan data yang berkaitan . Satu jenis cantuman dipanggil cantuman dalaman, yang mengambil hanya baris yang sepadan dengan kriteria yang ditentukan.
Untuk menyertai berbilang jadual, anda boleh menggunakan sintaks berikut:
SELECT * FROM table1 INNER JOIN table2 ON table1.column1 = table2.column2 INNER JOIN table3 ON table1.column1 = table3.column3
Dalam contoh ini , jadual table1 dicantumkan ke jadual table2 menggunakan lajur lajur1, dan kemudian ke jadual table3 menggunakan lajur lajur1 sekali lagi. Ini memastikan bahawa hanya baris yang sepadan dengan kriteria yang ditentukan dalam ketiga-tiga jadual dikembalikan.
Walau bagaimanapun, anda mungkin menghadapi masalah apabila cuba untuk menyertai berbilang jadual dengan kunci asing yang sama. Sebagai contoh, katakan anda mempunyai skema berikut:
table1: id, name table2: id, table1Id table3: id, table1Id
Anda boleh menyertai dua jadual pertama dengan pertanyaan berikut:
SELECT * FROM `table1` INNER JOIN `table2` ON table1.id=table2.table1Id
Sekarang, anda ingin menyertai jadual ketiga ke dalam pertanyaan itu. Anda boleh mencuba perkara berikut:
SELECT * FROM `table1` INNER JOIN `table2` INNER JOIN table3 ON table1.id=table2.table1Id=table3.table1Id
Walau bagaimanapun, pertanyaan ini tidak akan mengembalikan sebarang hasil. Sebabnya ialah lajur table1.id sedang dibandingkan dengan kedua-dua table2.table1Id dan table3.table1Id. Untuk membetulkannya, anda perlu memastikan bahawa setiap jadual dicantumkan menggunakan lajur kunci asing uniknya sendiri. Pertanyaan yang betul ialah:
SELECT * FROM table1 INNER JOIN table2 ON table1.id=table2.table1Id INNER JOIN table3 ON table1.id=table3.table1Id
Atas ialah kandungan terperinci Bagaimana untuk Menyertai Berbilang Jadual dalam SQL dengan Kekunci Asing yang Sama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!