Rumah >pangkalan data >tutorial mysql >Mengapa SQL INNER Saya TIDAK BERGABUNG Dengan Berbilang Jadual Mengembalikan Sebarang Keputusan?
Menyertai Berbilang Jadual Menggunakan SQL Inner JOIN
Apabila bekerja dengan pangkalan data hubungan, selalunya perlu untuk menggabungkan data daripada berbilang jadual. SQL menyediakan pengendali INNER JOIN untuk tujuan ini.
Untuk melakukan cantuman dalaman pada dua jadual, anda menentukan keadaan kesamaan antara kunci utama dan kunci asingnya. Contohnya:
SELECT * FROM table1 INNER JOIN table2 ON table1.primaryKey = table2.table1Id;
Pertanyaan ini akan mengembalikan semua baris daripada kedua-dua jadual yang mempunyai kekunci utama dan asing yang sepadan.
Untuk melanjutkan ini kepada berbilang jadual, cuma tambah klausa INNER JOIN tambahan pada pertanyaan, menggunakan syarat kesamaan kunci asing/utama yang sama. Walau bagaimanapun, kod berikut tidak mengembalikan sebarang hasil:
SELECT * FROM table1 INNER JOIN table2 INNER JOIN table3 ON table1.primaryKey = table2.table1Id = table3.table1Id;
Sebabnya ialah keadaan kesamarataan mesti dinyatakan secara berasingan untuk setiap jadual. Sintaks yang betul ialah:
SELECT * FROM table1 INNER JOIN table2 ON table1.primaryKey = table2.table1Id INNER JOIN table3 ON table1.primaryKey = table3.table1Id;
Pertanyaan ini akan mengembalikan semua baris daripada jadual1 yang mempunyai kekunci utama dan asing yang sepadan dalam jadual2 dan jadual3.
Atas ialah kandungan terperinci Mengapa SQL INNER Saya TIDAK BERGABUNG Dengan Berbilang Jadual Mengembalikan Sebarang Keputusan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!