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

MySQL BERGABUNG vs MENGGUNAKAN?

Ini sebagian besar adalah gula sintaksis, tetapi beberapa perbedaan patut diperhatikan:

AKTIF adalah yang lebih umum dari keduanya. Seseorang dapat bergabung dengan tabel PADA kolom, satu set kolom dan bahkan suatu kondisi. Misalnya:

SELECT * FROM world.City JOIN world.Country ON (City.CountryCode = Country.Code) WHERE ...

GUNAKAN berguna ketika kedua tabel berbagi kolom dengan nama yang sama persis di mana mereka bergabung. Dalam hal ini, bisa dikatakan:

SELECT ... FROM film JOIN film_actor USING (film_id) WHERE ...

Perlakuan bagus tambahan adalah bahwa seseorang tidak perlu sepenuhnya memenuhi syarat kolom bergabung:

SELECT film.title, film_id -- film_id is not prefixed
FROM film
JOIN film_actor USING (film_id)
WHERE ...

Sebagai ilustrasi, lakukan hal di atas dengan AKTIF , kita harus menulis:

SELECT film.title, film.film_id -- film.film_id is required here
FROM film
JOIN film_actor ON (film.film_id = film_actor.film_id)
WHERE ...

Perhatikan film.film_id kualifikasi di SELECT ayat. Tidak valid untuk hanya mengatakan film_id karena itu akan membuat ambiguitas:

KESALAHAN 1052 (23000):Kolom 'film_id' dalam daftar bidang tidak jelas

Sedangkan untuk select * , kolom bergabung muncul di hasil yang ditetapkan dua kali dengan ON sementara itu hanya muncul sekali dengan USING :

mysql> create table t(i int);insert t select 1;create table t2 select*from t;
Query OK, 0 rows affected (0.11 sec)

Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

Query OK, 1 row affected (0.19 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> select*from t join t2 on t.i=t2.i;
+------+------+
| i    | i    |
+------+------+
|    1 |    1 |
+------+------+
1 row in set (0.00 sec)

mysql> select*from t join t2 using(i);
+------+
| i    |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

mysql>


  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 Memperbaiki Database MySQL di cPanel

  2. Cara Menyimpan Data JSON di MySQL

  3. Pemecahan Masalah Replikasi MySQL:Bagian Satu

  4. Bahasa Kueri Doktrin mendapatkan Maks/Baris Terbaru Per Grup

  5. Batasan untuk mencegah penyisipan string kosong di MySQL