<p>Artikel ini akan membawa anda melalui pertanyaan sertai dan tetapkan operasi dalam MySQL. Saya harap ia akan membantu anda! </p>
<p><img src="https://img.php.cn/upload/article/000/000/024/6145d21cb7577613.jpg" alt="Analisis ringkas pertanyaan sertai dan tetapkan operasi dalam pembelajaran MySQL" ></p>
<h2><strong>Sertai pertanyaan </strong></h2>
<p>Sertai pertanyaan merujuk kepada padanan pertanyaan antara dua atau lebih jadual, biasanya dipanggil mendatar Operasi bermaksud bahawa akhir hasil akan mengandungi semua lajur dalam jadual ini Terdapat tiga operasi cantuman dalam MySQL, cantuman silang, cantuman dalam dan cantuman luar. [Cadangan berkaitan: <a href="//m.sbmmt.com/course/list/51.html" target="_blank" textvalue="mysql视频教程">tutorial video mysql</a>]</p>
<p>Cambung silang dipanggil <code>CROSS JOIN</code> Ia melakukan produk Cartesian pada dua jadual, dan ia akan mengembalikan komposisi semua lajur dalam dua jadual. Contohnya, jika terdapat n keping data dalam jadual kiri dan m keping data dalam jadual kanan, maka hasil akhir akan menjadi <code>n*m</code> keping, tetapi anda juga boleh menyambungkannya kepada diri sendiri, maka hasil akhir akan menjadi <code>n*n</code> kepingan, seperti pernyataan berikut. </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">select * from orders as a cross join orders as b;
+---------+--------+---------+--------+
| orderId | userId | orderId | userId |
+---------+--------+---------+--------+
| 10007 | 2 | 10001 | 1 |
| 10006 | 4 | 10001 | 1 |
.....
| 10002 | 1 | 10007 | 2 |
| 10001 | 1 | 10007 | 2 |
+---------+--------+---------+--------+
49 rows in set (0.01 sec)</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Memandangkan terdapat 7 keping data dalam jadual pesanan, 49 keping data akan dijana pada akhirnya. Cara lain untuk menulisnya adalah seperti berikut. </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">mysql> select * from orders as a ,orders as b;</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Hasilnya adalah sama, tetapi kaedah penulisannya berbeza Kaedah penulisan di atas telah diseragamkan untuk SQL oleh Institut Piawaian Kebangsaan Amerika pada tahun 1989, dipanggil piawaian ANSI SQL 89, dan penulisan pertama. kaedah Ia telah ditetapkan pada tahun 1992. </p><p>Cambung silang berguna untuk menjana data berulang dengan cepat, seperti pernyataan berikut. </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">insert orders select a.orderId,a.userId from orders as a ,orders as b limit 10;</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Berikut ialah cantuman dalaman, yang dibahagikan kepada dua bahagian Pertama, produk Cartesian dijana, dan kemudiannya ditapis mengikut keadaan penapisan ON seterusnya Ia menghasilkan nilai dengan rekod yang sama dalam dua jadual. </p><p><img src="https://img.php.cn/upload/image/218/908/717/1631965602120211.png" title="1631965602120211.png" alt="1 (2).png"/></p><p>Selain operator yang sama (=), anda juga boleh menggunakan operator lain selepas HIDUP, seperti lebih besar daripada (<code>></code>), kurang daripada (<code><</code> ) dan Tidak sama dengan (<code><></code>) pengendali untuk membentuk syarat cantum. </p><p>Yang terakhir ialah OUTER JOIN, yang boleh memadankan data antara jadual mengikut beberapa syarat penapisan. Tidak seperti INNER JOIN, terdapat data padanan yang tidak ditemui dalam jadual yang disimpan melalui OUTER JOIN menyokong MySQL LEFT OUTER JOIN OUTER JOIN, anda boleh tinggalkan OUTER semasa menulis. </p><p>Berikut ialah gambar rajah LEFT JOIN mengembalikan semua rekod dalam jadual kiri (jadual1) dan rekod sepadan dalam jadual kanan (jadual2). </p><p><img src="https://img.php.cn/upload/image/297/131/340/1631965607545060.png" title="1631965607545060.png" alt="Analisis ringkas pertanyaan sertai dan tetapkan operasi dalam pembelajaran MySQL"/></p><p>Berikut ialah gambar rajah RIGHT JOIN mengembalikan semua rekod dalam jadual kanan (jadual2) dan rekod sepadan dalam jadual kiri (jadual1). </p><p><img src="https://img.php.cn/upload/image/383/403/226/163196561126076Analisis ringkas pertanyaan sertai dan tetapkan operasi dalam pembelajaran MySQL" title="163196561126076Analisis ringkas pertanyaan sertai dan tetapkan operasi dalam pembelajaran MySQL" alt="Analisis ringkas pertanyaan sertai dan tetapkan operasi dalam pembelajaran MySQL"/></p><h2><strong>Tetapkan operasi </strong></h2><p>Terdapat operator UNION dalam MySQL, yang digunakan untuk menggabungkan 2 atau lebih set hasil SELECT, dan Padamkan baris pendua antara pernyataan SELECT Apabila menggunakannya, ikut peraturan asas berikut: </p><ul><li>Bilangan dan susunan lajur yang muncul dalam semua <code>SELECT</code> pernyataan mestilah sama. </li><li>Lajur juga mestilah daripada jenis data yang sama. </li></ul><p>Jika terdapat jadual berikut sekarang </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">CREATE TABLE t1 (
id INT PRIMARY KEY
);
CREATE TABLE t2 (
id INT PRIMARY KEY
);
INSERT INTO t1 VALUES (1),(2),(3);
INSERT INTO t2 VALUES (2),(3),(4);</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Laksanakan SQL berikut</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">SELECT id FROM t1
UNION
SELECT id FROM t2;</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Keputusan akhir adalah seperti ini. </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
+----+
4 rows in set (0.00 sec)</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Pernyataan UNION akan mengalih keluar data pendua daripada baris hasil yang ditetapkan secara lalai, bagaimanapun, anda boleh menggunakan UNION ALL untuk mendapatkan rekod pendua. </p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">SELECT id FROM t1
UNION ALL
SELECT id FROM t2;</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Hasilnya adalah seperti berikut</p><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">+----+
| id |
+----+
| 1 |
| 2 |
| 3 |
| 2 |
| 3 |
| 4 |
+----+
6 rows in set (0.00 sec)</pre><div class="contentsignin">Salin selepas log masuk</div></div><p>Perbezaan asas antara UNION dan JOIN ialah UNION menggabungkan set keputusan secara mendatar, manakala pernyataan JOIN menggabungkan set keputusan secara menegak. </p>
<p><img src="https://img.php.cn/upload/image/410/849/290/1631965648883159.png" title="1631965648883159.png" alt="Analisis ringkas pertanyaan sertai dan tetapkan operasi dalam pembelajaran MySQL"></p>
<blockquote>
<p>Alamat asal: https://juejin.cn/post/7001772087534682143</p>
<p>Pengarang: i Tingfeng Passing Night</p>Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: <p>Video Pengaturcaraan<a href="//m.sbmmt.com/course.html" target="_blank" textvalue="编程视频">! ! </a></p>
</blockquote>
Atas ialah kandungan terperinci Analisis ringkas pertanyaan sertai dan tetapkan operasi dalam pembelajaran MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!