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

Memilih semua item dalam satu tabel dan bergabung dengan tabel lain, memungkinkan nulls

anda harus menggunakan left join alih-alih right join

Penggabungan yang berbeda

inner join :simpan hanya baris yang berisi data di kedua tabel

left join :simpan semua baris tabel kiri dan tambahkan apa yang mungkin dari tabel kanan

right join :simpan semua baris tabel kanan dan tambahkan apa yang mungkin dari tabel kiri

Tabel kiri selalu merupakan tabel yang sudah kita miliki dan tabel kanan adalah tabel tempat kita bergabung.

Sebagai catatan, ada juga cross join yang menggabungkan setiap baris di tabel kiri dengan setiap baris di tabel kanan, tetapi baris ini tidak terlalu sering digunakan.

Saya harap semua ini sekarang lebih jelas untuk Anda :)

Kueri yang diperbaiki

select  bird_name, member_id 
from birds  
left join bird_likes on birds.bird_id = bird_likes.bird_id 
where member_id = 2;

Ketahuilah bahwa ini mengasumsikan bahwa kolom member_id ada di tabel burung, jika tidak, Anda dapat mempertahankan kondisinya seperti ini :

select  bird_name, member_id 
from birds  
left join bird_likes on 
    birds.bird_id = bird_likes.bird_id and
    bird_likes.member_id = 2;


  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:Dapatkan total di baris terakhir hasil MySql

  2. Kursor Loop Prosedur Tersimpan MySql - Kesalahan sintaks

  3. Meminimalkan kueri SQL menggunakan join dengan hubungan satu-ke-banyak

  4. Batasan kunci asing MySQL 5.5 gagal ketika kunci asing ada

  5. Peringkat posisi bersama di MySQL