Rumah > pangkalan data > tutorial mysql > SQL JOINs: USING, ON, or WHERE – Sintaks Mana Yang Perlu Anda Pilih?

SQL JOINs: USING, ON, or WHERE – Sintaks Mana Yang Perlu Anda Pilih?

Susan Sarandon
Lepaskan: 2025-01-21 22:01:14
asal
931 orang telah melayarinya

SQL JOINs: USING, ON, or WHERE – Which Syntax Should You Choose?

Perbandingan kaedah SQL JOIN: USING, ON and WHERE

SQL menyediakan tiga sintaks untuk melaksanakan operasi JOIN: USING, ON dan WHERE. Walaupun sintaks ini kelihatan serupa, ia boleh menjejaskan kebolehbacaan pertanyaan, ketepatan dan prestasi.

GUNAKAN sintaks

Sintaks

USING menggunakan kata kunci USING diikuti dengan nama lajur yang biasa kepada kedua-dua jadual untuk menentukan lajur gabungan:

<code class="language-sql">SELECT * FROM a JOIN b USING(ID);</code>
Salin selepas log masuk

HIDUP sintaks

Sintaks

ON menggunakan kata kunci ON dan ungkapan kesamaan antara lajur yang dicantumkan untuk mentakrifkan syarat-syarat penyertaan secara eksplisit:

<code class="language-sql">SELECT * FROM a JOIN b ON a.ID = b.ID;</code>
Salin selepas log masuk

WHERE sintaks

Sintaks WHERE menggabungkan syarat cantuman dan penapis dalam klausa WHERE:

<code class="language-sql">SELECT * FROM a, b WHERE a.ID = b.ID;</code>
Salin selepas log masuk

Pertimbangan prestasi

Tiada perbezaan prestasi yang ketara antara pilihan sintaks ini. Walau bagaimanapun, disebabkan kemungkinan kekaburan, terutamanya dengan pertanyaan yang melibatkan OUTER JOIN, sintaks WHERE tidak disyorkan.

Perbezaan semantik

Sintaks

USING secara eksplisit menyatakan hanya lajur gabungan, yang memberikan kejelasan dan mengurangkan risiko syarat gabungan yang salah.

Sintaks

ON membenarkan syarat gabungan yang lebih kompleks, termasuk pengendali ketidaksamaan (=, !=, >) atau syarat gabungan tambahan (mis., DAN/ATAU).

Sintaks WHERE secara tersirat melaksanakan INNER JOIN berdasarkan kesamaan lajur yang ditentukan. Ini boleh membawa kepada produk Cartesian yang tidak dijangka atau hasil yang salah untuk sambungan luar.

Contoh penerangan

Pertimbangkan pertanyaan berikut:

<code class="language-sql">FROM T1,T2,T3 WHERE T1.ID = T2.ID AND T1.foo = 'bar' AND T2.fish = 42</code>
Salin selepas log masuk

Tidak jelas sama ada T1.foo = 'bar' ialah syarat cantum atau syarat penapis.

Menulis semula pertanyaan menggunakan sintaks ON boleh memberikan kejelasan:

<code class="language-sql">FROM T1
   INNER JOIN T2 ON T1.ID = T2.ID
WHERE
   T1.foo = 'bar' AND T2.fish = 42</code>
Salin selepas log masuk

Kesimpulan

Walaupun pilihan sintaks USING, ON, dan WHERE semuanya boleh mencapai operasi JOIN, sintaks ON biasanya lebih disukai kerana kebolehbacaan, ketepatan dan ketekalannya yang lebih baik dalam mengendalikan cantuman luar. Sintaks USING memberikan kesederhanaan, manakala sintaks WHERE harus dielakkan kerana potensi kekaburannya.

Atas ialah kandungan terperinci SQL JOINs: USING, ON, or WHERE – Sintaks Mana Yang Perlu Anda Pilih?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan