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

Mengapa INNER JOIN tidak sama (!=) hang selamanya

Katakanlah INNER JOIN pertama Anda mengembalikan 75% dari 1.000.000 baris di table1 . Kueri kedua tidak mengembalikan 250.000 baris lain seperti yang Anda pikirkan. Sebagai gantinya, ia mencoba membuat produk Cartesian dan menghapus 750.000 baris yang cocok. Jadi ia mencoba mengembalikan 6.000.000 × 1.000.000-750.000 baris. Itu adalah kumpulan hasil baris 6×10 yang menonjol.

Anda mungkin menginginkan ini:

SELECT * FROM table1
LEFT JOIN table2 ON table2.number = table1.number
WHERE table2.number IS NULL

Ini mengembalikan baris di table1 tidak ada di table2 .

Anda mungkin juga tertarik dengan FULL OUTER JOIN :

SELECT * FROM table1
FULL OUTER JOIN table2 ON table2.number = table1.number
WHERE table1.number IS NULL AND table2.number IS NULL

Ini mengembalikan baris di kedua tabel yang tidak memiliki kecocokan di tabel lain.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Fungsi POSITION() Bekerja di MySQL

  2. Haruskah saya menggunakan pernyataan yang disiapkan untuk MySQL di PHP PERFORMANCE-WISE?

  3. PESAN OLEH ASC dengan Null di Bawah

  4. Sistem penandaan:Pertanyaan solusi toksik

  5. Perbedaan dalam beberapa minggu antara PHP dan MySQL