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

Memahami Self Join

Gabung sendiri seperti gabungan dalam di mana dua atau lebih contoh tabel yang sama digabungkan bersama melalui kolom/bidang tipe data umum. Gabung (inner join) seperti itu menghasilkan baris yang sama sebagai hasilnya, berdasarkan kondisi bergabung.

Tabel karyawan berisi tiga record. Dalam hal ini,

karyawan sebagai pegawai:

+-----+---------------+------------+
| id  | employee      | manager_id |
+-----+---------------+------------+
| 1   | Ola           |   NULL     |
| 2   | Ahmed         |    1       |
| 3   | Tove          |    1       |
+----------+----------+------------+

karyawan sebagai manajer:

+-----+---------------+------------+
| id  | employee      | manager_id |
+-----+---------------+------------+
| 1   | Ola           |   NULL     |
| 2   | Ahmed         |    1       |
| 3   | Tove          |    1       |
+----------+----------+------------+

Sekarang Kasus pertama:Mari kita coba ini untuk memahami perbedaannya:

PILIH emp.* , manager.* DARI pegawai sebagai pegawai, pegawai sebagai managerWHERE emp.id =manager.manager_id

+-----+---------------+------------+-----+---------------+------------+
| id  | employee      | manager_id | id  | employee      | manager_id |
+-----+---------------+------------+-----+---------------+------------+
| 1   | Ola           |   NULL     | 2   | Ahmed         |    1       |
| 1   | Ola           |   NULL     | 3   | Tove          |    1       |
+----------+----------+------------+----------+----------+------------+

Lihat, emp.id =manager.manager_id . Jadi, emp.employee sebagai NAME memberikan baris Ola dari tabel pertama &manager.employee sebagai MANAGER memberikan baris Ahmed &Tove dari tabel kedua.

Sekarang Kasus kedua:Mari kita coba ini untuk memahami perbedaannya:

PILIH emp.* , manager.* DARI karyawan sebagai pegawai, pegawai sebagai managerWHERE manager.id =emp.manager_id

+-----+---------------+------------+-----+---------------+------------+
| id  | employee      | manager_id | id  | employee      | manager_id |
+-----+---------------+------------+-----+---------------+------------+
| 2   | Ahmed         |    1       | 1   | Ola           |   NULL     |  
| 3   | Tove          |    1       | 1   | Ola           |   NULL     |
+----------+----------+------------+----------+----------+------------+

Lihat, manager.id =emp.manager_id . Jadi, emp.employee sebagai NAME memberikan baris Ahmed &Tove dari tabel pertama &manager.employee sebagai MANAGER memberikan baris Ola dari tabel kedua.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql jumlah baris per jam

  2. Masukkan div di MYSQL die

  3. Kesalahan MySQL:daftar SELECT tidak ada dalam klausa GROUP BY

  4. menggabungkan dua pernyataan pilihan

  5. Memahami Self Join