Rumah >pangkalan data >tutorial mysql >Mengapa pertanyaan SQL saya mengembalikan 'TableD is unknown' apabila menyertai empat jadual mengikut ID?
Menyambungkan Berbilang Jadual SQL melalui ID: Menyelesaikan masalah Ralat "Jadual Tidak Diketahui"
Panduan ini menangani isu biasa apabila menyertai berbilang jadual SQL menggunakan ID. Anda telah berjaya menyertai Jadual A, B dan C, tetapi penambahan Jadual D menghasilkan ralat "JadualD tidak diketahui". Ralat ini menandakan rujukan Jadual D yang salah dalam pertanyaan SQL anda. Untuk menyelesaikan masalah ini, anda mesti memautkan Jadual D dengan betul ke jadual bercantum sedia ada.
Penyelesaian
Pernyataan SQL yang diperbetulkan untuk memasukkan Jadual D ialah:
<code class="language-sql">SELECT TableA.*, TableB.*, TableC.*, TableD.* FROM TableA JOIN TableB ON TableB.aID = TableA.aID JOIN TableC ON TableC.cID = TableB.cID JOIN TableD ON TableD.dID = TableA.dID WHERE DATE(TableC.date) = CURDATE();</code>
Pertanyaan dipertingkat ini menggunakan TableA
sebagai sauh. Ia bergabung dengan TableB
menggunakan aID
, TableC
menggunakan cID
, dan akhirnya, TableD
menggunakan dID
(dengan mengandaikan dID
wujud dalam kedua-dua TableA
dan TableD
). Klausa WHERE
menapis hasil untuk hanya memasukkan entri yang TableC.date
sepadan dengan tarikh semasa. Perhatikan penggunaan CURDATE()
yang biasanya lebih disukai daripada date(now())
untuk kejelasan dan keserasian pangkalan data.
Pertimbangan Penting:
date(now())
berfungsi dalam sesetengah pangkalan data, CURDATE()
lebih standard dan mudah alih.Dengan mengikuti langkah-langkah ini dan mengesahkan kewujudan dan penamaan lajur ID anda, anda seharusnya berjaya menyertai keempat-empat jadual.
Atas ialah kandungan terperinci Mengapa pertanyaan SQL saya mengembalikan 'TableD is unknown' apabila menyertai empat jadual mengikut ID?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!