Menggabungkan jadual dalam SQL selalunya melibatkan penggunaan sama ada koma antara nama jadual atau pengendali CROSS JOIN
. Walaupun nampaknya boleh ditukar ganti, perbezaan utama wujud.
Sertai Dipisahkan Koma:
<code class="language-sql">SELECT * FROM tableA, tableB;</code>
SELURUH SERTAI:
<code class="language-sql">SELECT * FROM tableA CROSS JOIN tableB;</code>
Kedua-duanya mencipta produk Cartesian—setiap baris dalam tableA
digandingkan dengan setiap baris dalam tableB
.
Secara fungsional, kedua-dua kaedah adalah semantik semantik, menghasilkan produk Cartesan yang sama. Walau bagaimanapun, gabungan yang dipisahkan koma adalah sintaks warisan yang sudah lapuk. CROSS JOIN
, mematuhi piawaian SQL-92, adalah pendekatan yang diutamakan dan lebih mudah dibaca, terutamanya apabila bekerja dengan OUTER JOIN
s, yang tidak boleh dilakukan dengan cantuman dipisahkan koma.
Walaupun perbezaan prestasi yang wujud boleh diabaikan, CROSS JOIN
disyorkan untuk keserasian yang lebih baik dengan sistem pangkalan data moden dan pematuhan kepada piawaian SQL semasa. Ini meningkatkan kebolehbacaan kod dan mengurangkan potensi isu keserasian pada masa hadapan.
Kedua-dua cantuman yang dipisahkan koma dan CROSS JOIN
membuahkan hasil yang sama—produk Cartesian. Walau bagaimanapun, CROSS JOIN
ialah pilihan terbaik kerana pematuhan SQL-92 dan fungsi yang lebih luas. Ingat bahawa produk Cartesian boleh membawa kepada set hasil yang luar biasa besar jika tidak dipertimbangkan dengan teliti. Sentiasa fahami implikasi mencipta produk Cartesian sebelum menggunakan mana-mana kaedah.
Atas ialah kandungan terperinci CROSS JOIN lwn. Comma-Separated Joins dalam SQL: Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!