Rumah  >  Artikel  >  pangkalan data  >  Mari bercakap tentang sambungan jadual SQL

Mari bercakap tentang sambungan jadual SQL

WBOY
WBOYke hadapan
2022-06-15 11:55:282227semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang SQL, yang terutamanya memperkenalkan kandungan yang berkaitan tentang sambungan jadual SQL Server menyokong pelbagai sambungan, termasuk sambung dalam, sambung kiri dan sambung kanan sertai dan sertai luar sepenuhnya, mari kita lihat bersama-sama, semoga ia dapat membantu semua orang.

Mari bercakap tentang sambungan jadual SQL

Pembelajaran yang disyorkan: "Tutorial SQL"

Sambungan jadual SQL

Dalam pangkalan data hubungan, data Diedarkan merentas berbilang jadual logik. Untuk mendapatkan set data yang lengkap dan bermakna, anda perlu menggunakan gabungan untuk menanyakan data dalam jadual ini. SQL Server menyokong pelbagai sambungan, termasuk sambung dalam, sambung kiri, sambung kanan, sambung silang dan sambung luar penuh.

1. Inner join

Inner join clause digunakan untuk menanyakan data daripada dua atau lebih jadual yang berkaitan. Sintaks klausa INNER JOIN:

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
INNER JOIN production.categories c ON c.category_id = p.category_id

Nota: Medan yang hendak disoal mesti didahului dengan nama jadual atau alias jadual, seperti: p.product_name
di mana medan selepas FROM It ialah jadual utama, dan jadual selepas INNER JOIN ialah jadual yang akan disambungkan. Jadual utama dan jadual gabungan dibandingkan untuk mencari semua baris yang memenuhi syarat. Jika hasil pengiraan predikat sambungan adalah benar, jadual utama dan jadual sambungan akan digabungkan menjadi set hasil baharu, seperti ditunjukkan dalam rajah berikut: Berbilang jadual disambungkan dalam

Mari bercakap tentang sambungan jadual SQL

Sambungan adalah seperti berikut:

SELECT p.product_name, p.list_price ,c.category_name, b.brand_nameFROM production.products p 
INNER JOIN production.categories c ON c.category_id = p.category_id 
INNER JOIN production.brands b ON b.brand_id = p.brand_id

2 Left join

Gunakan klausa LEFT JOIN di sebelah kiri join untuk. pertanyaan daripada Untuk data daripada berbilang jadual, ia mengembalikan semua baris dalam jadual kiri dan baris yang sepadan dalam jadual kanan. Jika tiada baris yang sepadan ditemui dalam jadual kanan, gunakan NULL sebagai ganti untuk paparan, seperti yang ditunjukkan dalam rajah:

Mari bercakap tentang sambungan jadual SQL

Gunakan pernyataan LEFT JOIN untuk menyambung: seperti ditunjukkan di bawah:

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
LEFT JOIN production.categories c ON c.category_id = p.category_id

Dalam sintaks di atas, jadual berikut FROM ialah jadual kiri (production.products) dan jadual kanan (production.categories) serta-merta selepas LEFT JOIN.

3. Cantuman kanan

Gunakan klausa RIGHT JOIN dalam cantuman kanan untuk menanyakan dua atau lebih jadual. Pertanyaan kanan adalah bertentangan dengan pertanyaan kiri Ia mengembalikan semua baris jadual kanan dan baris sepadan jadual kiri Jika tiada baris sepadan ditemui dalam jadual kiri, NULL dikembalikan dan bukannya paparan dalam rajah:

Mari bercakap tentang sambungan jadual SQL

Gunakan pernyataan RIGHT JOIN untuk bergabung: seperti berikut:

SELECT p.product_name, p.list_price ,c.category_nameFROM production.products p 
RIGHT JOIN production.categories c ON c.category_id = p.category_id

Dalam sintaks di atas, jadual selepas FROM ialah jadual kiri (production.products), dan RIGHT JOIN Ia diikuti dengan jadual kanan (production.categories).

4 Cross Join

CROSS JOIN menyertai dua atau lebih jadual yang tidak berkaitan. Berikut ialah sintaks CROSS JOIN antara dua jadual, dua cara penulisan:

SELECT T1.select_list 
FROM T1 CROSS JOIN T2;

atau

SELECT T1.select_list 
FROM T1, T2;

CROSS JOIN menggabungkan setiap baris dalam jadual pertama (T1) dengan Setiap baris dalam dua jadual (T2) disatukan. Dalam erti kata lain, cantuman silang mengembalikan hasil darab Cartesan bagi baris dalam dua jadual. Tidak seperti INNER JOIN atau LEFT JOIN, cantuman silang tidak mewujudkan hubungan antara jadual yang digabungkan.
Katakan jadual T1 mengandungi tiga baris: 1 , 2 dan 3 , dan jadual T2 mengandungi tiga baris: A , B dan C . CROSS JOIN mengambil satu baris daripada jadual pertama (T1) dan mencipta baris baharu untuk setiap baris dalam jadual kedua (T2). Kemudian ia melakukan perkara yang sama untuk baris seterusnya dalam jadual pertama (T1), dan seterusnya. Dalam rajah ini, CROSS JOIN mencipta sejumlah 9 baris.

5. Sertai sendiri

Sertai sendiri digunakan untuk menyambungkan jadual kepada dirinya sendiri (jadual yang sama). Ia berguna untuk menanyakan data hierarki atau membandingkan baris dalam jadual yang sama.
Sambungan sendiri menggunakan klausa sambung dalam atau sambung kiri. Oleh kerana pertanyaan menggunakan sambung sendiri merujuk jadual yang sama, alias jadual digunakan untuk menetapkan nama yang berbeza kepada jadual dalam pertanyaan.
Nota: Jika anda merujuk jadual yang sama beberapa kali dalam pertanyaan tanpa menggunakan alias jadual, ralat akan berlaku.
Contoh:

SELECT t1.select_list 
FROM T1 t1INNER JOIN T1 t2 ON t1.category_id = t2.category_id

Anda boleh menggunakan klausa lain di sini dalam INNER JOIN, seperti: LEFT JOIN, KANAN JOIN

6 🎜>

FULL OUTER JOIN Perintah ini akan mengembalikan semua baris apabila terdapat padanan di meja kiri atau kanan. Seperti yang ditunjukkan dalam rajah:

Mari bercakap tentang sambungan jadual SQL

Gunakan FULL OUTER JOIN untuk menanyakan data dalam jadual pm.projects dan jadual pm.member:

SELECT m.name member, p.title project 
FROM pm.members m 
FULL OUTER JOIN pm.projects p ON p.id = m.project_id;
pm.projects Data jadual:


Mari bercakap tentang sambungan jadual SQL

pm.member Data jadual:

Mari bercakap tentang sambungan jadual SQL

Hasil pertanyaan:
Mari bercakap tentang sambungan jadual SQL

Kajian yang disyorkan: "Tutorial SQL"

Atas ialah kandungan terperinci Mari bercakap tentang sambungan jadual SQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam