Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Kapan menggunakan LEFT JOIN dan kapan menggunakan INNER JOIN?

Apakah ada tangkapan? Ya ada -- Gabungan Kiri adalah bentuk Gabungan Luar, sedangkan Gabungan Dalam Adalah Bentuk, Yah, Gabungan Dalam.

Berikut contoh yang menunjukkan perbedaannya. Kita akan mulai dengan data dasar:

mysql> select * from j1;
+----+------------+
| id | thing      |
+----+------------+
|  1 | hi         |
|  2 | hello      |
|  3 | guten tag  |
|  4 | ciao       |
|  5 | buongiorno |
+----+------------+

mysql> select * from j2;
+----+-----------+
| id | thing     |
+----+-----------+
|  1 | bye       |
|  3 | tschau    |
|  4 | au revoir |
|  6 | so long   |
|  7 | tschuessi |
+----+-----------+

Dan di sini kita akan melihat perbedaan antara gabungan dalam dan gabungan kiri:

mysql> select * from j1 inner join j2 on j1.id = j2.id;
+----+-----------+----+-----------+
| id | thing     | id | thing     |
+----+-----------+----+-----------+
|  1 | hi        |  1 | bye       |
|  3 | guten tag |  3 | tschau    |
|  4 | ciao      |  4 | au revoir |
+----+-----------+----+-----------+

Hmm, 3 baris.

mysql> select * from j1 left join j2 on j1.id = j2.id;
+----+------------+------+-----------+
| id | thing      | id   | thing     |
+----+------------+------+-----------+
|  1 | hi         |    1 | bye       |
|  2 | hello      | NULL | NULL      |
|  3 | guten tag  |    3 | tschau    |
|  4 | ciao       |    4 | au revoir |
|  5 | buongiorno | NULL | NULL      |
+----+------------+------+-----------+

Wah, 5 baris! Apa yang terjadi?

Gabungan luar seperti left join pertahankan baris yang tidak cocok -- jadi baris dengan id 2 dan 5 dipertahankan oleh kueri gabung kiri. Kolom yang tersisa diisi dengan NULL.

Dengan kata lain, gabungan kiri dan dalam tidak dapat dipertukarkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Menghitung Rata-Rata Penjualan Per Minggu di MySQL

  2. Bagaimana Anda mendapatkan banyak hasil dari satu CallableStatement?

  3. meningkatkan kinerja untuk klausa LIKE

  4. Menambahkan hanya satu nilai ke tabel di sql

  5. Permintaan MySQL untuk mendapatkan hitungan per bulan