Rumah > Artikel > pangkalan data > Mari bercakap tentang sambungan jadual SQL
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.
Pembelajaran yang disyorkan: "Tutorial 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
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:
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:
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: 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:
Hasil pertanyaan:
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!