Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL THAM GIA VÀ SỬ DỤNG?

Nó chủ yếu là đường cú pháp, nhưng có một số khác biệt đáng chú ý:

BẬT là tổng quát hơn của cả hai. Người ta có thể nối các bảng TRÊN một cột, một tập hợp các cột và thậm chí là một điều kiện. Ví dụ:

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

SỬ DỤNG hữu ích khi cả hai bảng chia sẻ một cột có cùng tên chính xác mà chúng tham gia. Trong trường hợp này, người ta có thể nói:

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

Một điều thú vị bổ sung là người ta không cần phải hội đủ điều kiện của các cột tham gia:

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

Để minh họa, hãy làm như trên với BẬT , chúng tôi sẽ phải viết:

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 ...

Lưu ý film.film_id trình độ trong SELECT mệnh đề. Sẽ không hợp lệ nếu chỉ nói film_id vì điều đó sẽ tạo ra sự mơ hồ:

LỖI 1052 (23000):Cột 'film_id' trong danh sách trường không rõ ràng

Đối với select * , cột kết hợp xuất hiện trong kết quả được đặt hai lần với ON trong khi nó chỉ xuất hiện một lần với 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. Mysql chọn đệ quy nhận tất cả con với nhiều cấp độ

  2. Tạo ứng dụng web từ Scratch bằng Python Flask và MySQL:Phần 4

  3. SQL Internal Join - Cách nối 3 bảng trong SQL và MySQL

  4. Cách bao gồm một biến PHP bên trong một câu lệnh MySQL

  5. MySQL INSERT hoặc REPLACE Commands