Rumah >pangkalan data >tutorial mysql >Mengapa SQL INNER Saya TIDAK BERGABUNG Dengan Berbilang Jadual Mengembalikan Sebarang Keputusan?

Mengapa SQL INNER Saya TIDAK BERGABUNG Dengan Berbilang Jadual Mengembalikan Sebarang Keputusan?

Barbara Streisand
Barbara Streisandasal
2024-12-17 00:04:23225semak imbas

Why Doesn't My SQL INNER JOIN With Multiple Tables Return Any Results?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn