Rumah >pangkalan data >tutorial mysql >Apakah Maksud Sintaks '=*' dalam SQL Joins?

Apakah Maksud Sintaks '=*' dalam SQL Joins?

Patricia Arquette
Patricia Arquetteasal
2025-01-04 19:58:41435semak imbas

What Does the

Memahami Maksud "=*" dalam SQL Joins

Apabila memeriksa kod Microsoft SQL Server, adalah mungkin untuk menemui gabungan yang tidak dikenali konvensyen: "=*." Sintaks ini, yang mempunyai akar sejarah sebelum SQL Server 2005, mempunyai makna khusus dan bukan ANSI JOIN.

Sintaks "=*" Join

The "=*" menyertai sintaks mengambil yang berikut borang:

WHERE table1.yr =* table2.yr -1

Definisi

Cambahan "=*" ialah cantuman luar yang menggunakan logik berikut:

  • Jika jadual kiri (jadual1 dalam contoh) mengandungi baris dengan nilai yang sepadan dalam jadual kanan (jadual2), barisnya bergabung.
  • Jika jadual kiri (jadual1) tidak mempunyai nilai padanan dalam jadual kanan (jadual2), nilai nol ditambah untuk lajur jadual kanan.
  • Jika jadual kanan (jadual2) tidak mempunyai nilai padanan dalam jadual kiri (jadual1), nilai nol ditambah untuk lajur sebelah kiri jadual.

Contoh

Pertimbangkan jadual berikut:

table1:
| yr | data |
| ----------- | -------- |
| 2022 | x |
| 2023 | y |

table2:
| yr | value |
| ----------- | --------- |
| 2021 | a |
| 2022 | b |

Pertanyaan berikut menggunakan gabungan "=*" untuk menggabungkan jadual ini:

SELECT *
FROM table1
WHERE table1.yr =* table2.yr -1;

Pertanyaan ini akan menghasilkan perkara berikut hasil:

yr data value
2022 x b
2023 y NULL
**Note:** The "-1" in the query subtracts one year from the "yr" column of table2, resulting in a match for "2022" from table1.

**Historical Significance and ANSI Joins**

The "=*" join syntax was prevalent in older versions of TSQL. However, since SQL Server 2005, ANSI JOIN syntax is preferred. The ANSI JOIN syntax uses keywords such as "INNER JOIN", "LEFT JOIN", and "RIGHT JOIN" to specify the type of join.

Atas ialah kandungan terperinci Apakah Maksud Sintaks '=*' dalam SQL Joins?. 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